home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / DA / Met-Mz / Moose.cpt / MooseUnit.p < prev    next >
MacBinary  |  1987-04-02  |  16.0 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert ZX81 Sinclair BASIC (image/sinclairBASIC) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Wed Apr 1 19:33:49 1987, modified Wed Apr 1 19:33:49 1987, creator 'MPS ', type ASCII, 15775 bytes "MooseUnit.p" , at 0x3e1f 382 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0b 4d 6f 6f 73 65 55 | 6e 69 74 2e 70 00 00 00 |..MooseU|nit.p...|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 3d 9f 00 | 00 01 7e 9c 97 62 6d 9c |.....=..|..~..bm.|
|00000060| 97 62 6d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.bm.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 d8 5c 00 00 |........|.....\..|
|00000080| 7b 20 54 68 69 73 20 66 | 69 6c 65 20 28 75 6e 69 |{ This f|ile (uni|
|00000090| 74 29 20 63 6f 6e 74 61 | 69 6e 73 20 50 61 73 63 |t) conta|ins Pasc|
|000000a0| 61 6c 20 63 6f 64 65 20 | 74 6f 20 63 6f 6e 74 72 |al code |to contr|
|000000b0| 6f 6c 20 74 68 65 20 54 | 61 6c 6b 69 6e 67 20 4d |ol the T|alking M|
|000000c0| 6f 6f 73 65 2e 20 20 20 | 20 20 20 20 20 20 7d 0d |oose. | }.|
|000000d0| 7b 20 53 6c 69 67 68 74 | 20 6d 6f 64 69 66 69 63 |{ Slight| modific|
|000000e0| 61 74 69 6f 6e 20 69 73 | 20 6e 65 63 65 73 73 61 |ation is| necessa|
|000000f0| 72 79 20 66 6f 72 20 74 | 68 65 20 76 61 72 69 6f |ry for t|he vario|
|00000100| 75 73 20 50 61 73 63 61 | 6c 20 65 6e 76 69 72 6f |us Pasca|l enviro|
|00000110| 6e 6d 65 6e 74 73 2e 20 | 20 20 20 20 20 20 7d 0d |nments. | }.|
|00000120| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|00000130| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000140| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000150| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000160| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000170| 7b 20 20 20 20 20 20 54 | 68 65 20 54 61 6c 6b 69 |{ T|he Talki|
|00000180| 6e 67 20 4d 6f 6f 73 65 | 20 44 65 73 6b 20 41 63 |ng Moose| Desk Ac|
|00000190| 63 65 73 73 6f 72 79 20 | 75 73 65 73 20 74 68 65 |cessory |uses the|
|000001a0| 20 22 4d 61 63 69 6e 54 | 61 6c 6b 22 20 73 70 65 | "MacinT|alk" spe|
|000001b0| 65 63 68 20 64 72 69 76 | 65 72 2e 20 20 20 7d 0d |ech driv|er. }.|
|000001c0| 7b 20 4f 66 20 63 6f 75 | 72 73 65 2c 20 50 61 73 |{ Of cou|rse, Pas|
|000001d0| 63 61 6c 20 70 72 6f 67 | 72 61 6d 6d 65 72 73 20 |cal prog|rammers |
|000001e0| 63 6f 75 6c 64 20 75 73 | 65 20 4d 61 63 69 6e 54 |could us|e MacinT|
|000001f0| 61 6c 6b 20 63 6f 6d 6d | 61 6e 64 73 20 74 6f 20 |alk comm|ands to |
|00000200| 67 65 74 20 73 70 65 65 | 63 68 2c 20 20 20 7d 0d |get spee|ch, }.|
|00000210| 7b 20 62 75 74 20 74 68 | 65 20 54 61 6c 6b 69 6e |{ but th|e Talkin|
|00000220| 67 20 4d 6f 6f 73 65 20 | 70 72 6f 76 69 64 65 73 |g Moose |provides|
|00000230| 20 61 6c 6c 20 6f 66 20 | 4d 61 63 69 6e 54 61 6c | all of |MacinTal|
|00000240| 6b 27 73 20 63 6f 6d 6d | 61 6e 64 73 2c 20 20 70 |k's comm|ands, p|
|00000250| 6c 75 73 20 73 6f 6d 65 | 20 20 20 20 20 20 7d 0d |lus some| }.|
|00000260| 7b 20 65 78 74 72 61 20 | 66 65 61 74 75 72 65 73 |{ extra |features|
|00000270| 2c 20 73 6f 20 49 20 62 | 65 6c 69 65 76 65 20 69 |, so I b|elieve i|
|00000280| 74 27 73 20 61 6e 20 69 | 6d 70 72 6f 76 65 6d 65 |t's an i|mproveme|
|00000290| 6e 74 2e 20 20 49 66 20 | 74 68 65 20 54 61 6c 6b |nt. If |the Talk|
|000002a0| 69 6e 67 20 4d 6f 6f 73 | 65 20 20 20 20 20 7d 0d |ing Moos|e }.|
|000002b0| 7b 20 64 65 73 6b 20 61 | 63 63 65 73 73 6f 72 79 |{ desk a|ccessory|
|000002c0| 20 69 73 20 61 76 61 69 | 6c 61 62 6c 65 2c 20 28 | is avai|lable, (|
|000002d0| 61 6e 64 20 4d 61 63 69 | 6e 54 61 6c 6b 20 61 6e |and Maci|nTalk an|
|000002e0| 64 20 4d 6f 6f 73 65 20 | 50 68 72 61 73 65 73 20 |d Moose |Phrases |
|000002f0| 61 72 65 20 70 72 65 73 | 65 6e 74 29 2c 20 7d 0d |are pres|ent), }.|
|00000300| 7b 20 74 68 65 6e 20 50 | 61 73 63 61 6c 20 70 72 |{ then P|ascal pr|
|00000310| 6f 67 72 61 6d 73 20 77 | 69 74 68 20 61 64 64 65 |ograms w|ith adde|
|00000320| 64 20 4d 6f 6f 73 65 20 | 63 6f 64 65 20 77 69 6c |d Moose |code wil|
|00000330| 6c 20 77 6f 72 6b 2e 20 | 20 20 20 20 20 20 20 20 |l work. | |
|00000340| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000350| 7b 20 50 61 73 63 61 6c | 20 43 6f 6d 6d 61 6e 64 |{ Pascal| Command|
|00000360| 73 20 61 72 65 20 64 65 | 73 63 72 69 62 65 64 20 |s are de|scribed |
|00000370| 62 65 6c 6f 77 3a 20 20 | 20 20 20 20 20 20 20 20 |below: | |
|00000380| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000390| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|000003a0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|000003b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000003c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000003d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000003e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|000003f0| 7b 20 20 46 55 4e 43 54 | 49 4f 4e 20 53 74 61 72 |{ FUNCT|ION Star|
|00000400| 74 4d 6f 6f 73 65 28 68 | 69 64 65 3a 20 62 6f 6f |tMoose(h|ide: boo|
|00000410| 6c 65 61 6e 29 20 3a 20 | 69 6e 74 65 67 65 72 3b |lean) : |integer;|
|00000420| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000430| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000440| 7b 20 20 20 20 54 68 69 | 73 20 66 75 6e 63 74 69 |{ Thi|s functi|
|00000450| 6f 6e 20 69 6e 73 74 61 | 6c 6c 73 20 74 68 65 20 |on insta|lls the |
|00000460| 54 61 6c 6b 69 6e 67 20 | 4d 6f 6f 73 65 2e 20 20 |Talking |Moose. |
|00000470| 43 61 6c 6c 20 69 74 20 | 61 74 20 74 68 65 20 62 |Call it |at the b|
|00000480| 65 67 69 6e 6e 69 6e 67 | 20 20 20 20 20 20 7d 0d |eginning| }.|
|00000490| 7b 20 20 20 20 6f 66 20 | 79 6f 75 72 20 70 72 6f |{ of |your pro|
|000004a0| 67 72 61 6d 2e 20 20 28 | 49 66 20 74 68 65 20 4d |gram. (|If the M|
|000004b0| 6f 6f 73 65 20 77 61 73 | 20 61 6c 72 65 61 64 79 |oose was| already|
|000004c0| 20 69 6e 73 74 61 6c 6c | 65 64 20 62 65 66 6f 72 | install|ed befor|
|000004d0| 65 20 79 6f 75 72 20 20 | 20 20 20 20 20 20 7d 0d |e your | }.|
|000004e0| 7b 20 20 20 20 70 72 6f | 67 72 61 6d 2c 20 6e 6f |{ pro|gram, no|
|000004f0| 20 68 61 72 6d 20 64 6f | 6e 65 2e 29 20 20 20 49 | harm do|ne.) I|
|00000500| 66 20 22 68 69 64 65 22 | 20 69 73 20 54 52 55 45 |f "hide"| is TRUE|
|00000510| 2c 20 74 68 65 20 44 65 | 73 6b 20 41 63 63 65 73 |, the De|sk Acces|
|00000520| 73 6f 72 79 20 77 69 6e | 64 6f 77 20 20 20 7d 0d |sory win|dow }.|
|00000530| 7b 20 20 20 20 77 6f 6e | 27 74 20 62 65 20 6f 70 |{ won|'t be op|
|00000540| 65 6e 65 64 2e 20 20 54 | 68 65 20 69 6e 74 65 67 |ened. T|he integ|
|00000550| 65 72 20 72 65 73 75 6c | 74 73 20 72 65 74 75 72 |er resul|ts retur|
|00000560| 6e 65 64 20 61 72 65 3a | 20 30 3d 49 6e 73 74 61 |ned are:| 0=Insta|
|00000570| 6c 6c 65 64 20 4f 4b 2c | 20 20 20 20 20 20 7d 0d |lled OK,| }.|
|00000580| 7b 20 20 20 20 2d 31 3d | 4d 6f 6f 73 65 20 61 6c |{ -1=|Moose al|
|00000590| 72 65 61 64 79 20 69 6e | 73 74 61 6c 6c 65 64 2c |ready in|stalled,|
|000005a0| 20 31 3d 4e 6f 20 4d 61 | 63 69 6e 54 61 6c 6b 2c | 1=No Ma|cinTalk,|
|000005b0| 20 32 3d 4e 6f 20 4d 6f | 6f 73 65 20 50 68 72 61 | 2=No Mo|ose Phra|
|000005c0| 73 65 73 2c 20 20 20 20 | 20 20 20 20 20 20 7d 0d |ses, | }.|
|000005d0| 7b 20 20 20 20 33 3d 4e | 6f 20 53 79 73 48 65 61 |{ 3=N|o SysHea|
|000005e0| 70 20 73 70 61 63 65 2c | 20 20 34 3d 6f 74 68 65 |p space,| 4=othe|
|000005f0| 72 20 44 2e 41 2e 20 65 | 72 72 6f 72 73 2e 20 20 |r D.A. e|rrors. |
|00000600| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000610| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000620| 7b 20 20 20 20 4e 6f 74 | 65 3a 20 20 41 6c 74 68 |{ Not|e: Alth|
|00000630| 6f 75 67 68 20 74 68 65 | 20 4d 6f 6f 73 65 27 73 |ough the| Moose's|
|00000640| 20 69 6e 74 65 72 6e 61 | 6c 20 74 61 73 6b 73 20 | interna|l tasks |
|00000650| 67 65 74 20 69 6e 73 74 | 61 6c 6c 65 64 2c 20 74 |get inst|alled, t|
|00000660| 68 65 73 65 20 74 61 73 | 6b 73 20 20 20 20 7d 0d |hese tas|ks }.|
|00000670| 7b 20 20 20 20 77 61 69 | 74 20 75 6e 74 69 6c 20 |{ wai|t until |
|00000680| 74 68 65 20 31 73 74 20 | 4e 55 4c 4c 20 65 76 65 |the 1st |NULL eve|
|00000690| 6e 74 20 69 6e 20 79 6f | 75 72 20 6d 61 69 6e 20 |nt in yo|ur main |
|000006a0| 65 76 65 6e 74 20 6c 6f | 6f 70 20 62 65 66 6f 72 |event lo|op befor|
|000006b0| 65 20 66 69 6e 69 73 68 | 69 6e 67 20 20 20 7d 0d |e finish|ing }.|
|000006c0| 7b 20 20 20 20 74 68 65 | 20 22 53 70 65 65 63 68 |{ the| "Speech|
|000006d0| 4f 6e 22 20 70 72 6f 63 | 65 73 73 3a 20 69 65 20 |On" proc|ess: ie |
|000006e0| 6f 70 65 6e 69 6e 67 20 | 52 65 73 46 69 6c 65 73 |opening |ResFiles|
|000006f0| 20 61 6e 64 20 74 68 65 | 20 2e 53 50 45 45 43 48 | and the| .SPEECH|
|00000700| 20 64 72 69 76 65 72 2e | 20 20 20 20 20 20 7d 0d | driver.| }.|
|00000710| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|00000720| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000730| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000740| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000750| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000760| 7b 20 20 46 55 4e 43 54 | 49 4f 4e 20 43 61 6c 6c |{ FUNCT|ION Call|
|00000770| 52 65 61 64 65 72 28 20 | 73 20 3a 20 53 74 72 32 |Reader( |s : Str2|
|00000780| 35 35 3b 20 68 20 3a 20 | 48 61 6e 64 6c 65 29 20 |55; h : |Handle) |
|00000790| 3a 20 69 6e 74 65 67 65 | 72 3b 20 20 20 20 20 20 |: intege|r; |
|000007a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|000007b0| 7b 20 20 20 20 54 68 69 | 73 20 66 75 6e 63 74 69 |{ Thi|s functi|
|000007c0| 6f 6e 20 70 72 6f 76 69 | 64 65 73 20 74 68 65 20 |on provi|des the |
|000007d0| 65 71 75 69 76 61 6c 65 | 6e 74 20 6f 66 20 4d 61 |equivale|nt of Ma|
|000007e0| 63 69 6e 54 61 6c 6b 27 | 73 20 22 52 65 61 64 65 |cinTalk'|s "Reade|
|000007f0| 72 22 2e 20 20 54 68 65 | 20 20 20 20 20 20 7d 0d |r". The| }.|
|00000800| 7b 20 20 20 20 22 73 22 | 20 69 6e 70 75 74 20 74 |{ "s"| input t|
|00000810| 65 78 74 20 69 73 20 74 | 72 61 6e 73 6c 61 74 65 |ext is t|ranslate|
|00000820| 64 20 69 6e 74 6f 20 50 | 68 6f 6e 65 6d 65 73 2c |d into P|honemes,|
|00000830| 20 61 6e 64 20 70 6c 61 | 63 65 64 20 69 6e 74 6f | and pla|ced into|
|00000840| 20 74 68 65 20 22 68 22 | 20 20 20 20 20 20 7d 0d | the "h"| }.|
|00000850| 7b 20 20 20 20 6f 75 74 | 70 75 74 20 68 61 6e 64 |{ out|put hand|
|00000860| 6c 65 2e 20 20 54 68 65 | 20 68 61 6e 64 6c 65 20 |le. The| handle |
|00000870| 69 73 20 72 65 73 69 7a | 65 64 20 74 6f 20 74 68 |is resiz|ed to th|
|00000880| 65 20 70 72 6f 70 65 72 | 20 73 69 7a 65 2c 20 20 |e proper| size, |
|00000890| 61 6e 64 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d |and | }.|
|000008a0| 7b 20 20 20 20 74 68 75 | 73 20 73 68 6f 75 6c 64 |{ thu|s should|
|000008b0| 20 62 65 20 63 72 65 61 | 74 65 64 20 70 72 65 76 | be crea|ted prev|
|000008c0| 69 6f 75 73 6c 79 20 77 | 69 74 68 20 4d 79 50 68 |iously w|ith MyPh|
|000008d0| 6f 6e 65 6d 65 73 20 3a | 3d 20 4e 65 77 48 61 6e |onemes :|= NewHan|
|000008e0| 64 6c 65 28 20 30 20 29 | 3b 20 20 20 20 20 7d 0d |dle( 0 )|; }.|
|000008f0| 7b 20 20 20 20 54 68 65 | 20 66 75 6e 63 74 69 6f |{ The| functio|
|00000900| 6e 20 72 65 73 75 6c 74 | 20 69 73 20 30 20 69 66 |n result| is 0 if|
|00000910| 20 6e 6f 20 65 72 72 6f | 72 20 6f 63 63 75 72 72 | no erro|r occurr|
|00000920| 65 64 2e 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |ed. | |
|00000930| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000940| 7b 20 20 20 20 4e 6f 74 | 65 3a 20 54 68 65 20 4d |{ Not|e: The M|
|00000950| 6f 6f 73 65 20 6d 75 73 | 74 20 62 65 20 22 66 75 |oose mus|t be "fu|
|00000960| 6c 6c 79 22 20 69 6e 73 | 74 61 6c 6c 65 64 2c 20 |lly" ins|talled, |
|00000970| 74 68 75 73 20 69 66 20 | 79 6f 75 20 77 61 6e 74 |thus if |you want|
|00000980| 20 74 6f 20 63 61 6c 6c | 20 74 68 69 73 20 7d 0d | to call| this }.|
|00000990| 7b 20 20 20 20 66 75 6e | 63 74 69 6f 6e 20 64 75 |{ fun|ction du|
|000009a0| 72 69 6e 67 20 69 6e 69 | 74 69 61 6c 69 7a 61 74 |ring ini|tializat|
|000009b0| 69 6f 6e 2c 20 61 20 70 | 72 69 6f 72 20 22 43 61 |ion, a p|rior "Ca|
|000009c0| 6c 6c 4d 6f 6f 73 65 54 | 6f 53 70 65 61 6b 22 20 |llMooseT|oSpeak" |
|000009d0| 69 73 20 6e 65 63 65 73 | 61 72 79 2e 20 20 7d 0d |is neces|ary. }.|
|000009e0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|000009f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000a30| 7b 20 20 46 55 4e 43 54 | 49 4f 4e 20 47 65 74 4d |{ FUNCT|ION GetM|
|00000a40| 6f 6f 73 65 28 20 56 41 | 52 20 6d 3a 20 4d 6f 6f |oose( VA|R m: Moo|
|00000a50| 73 65 50 74 72 29 20 3a | 20 62 6f 6f 6c 65 61 6e |sePtr) :| boolean|
|00000a60| 3b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |; | |
|00000a70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000a80| 7b 20 20 20 20 54 68 69 | 73 20 66 75 6e 63 74 69 |{ Thi|s functi|
|00000a90| 6f 6e 20 72 65 74 75 72 | 6e 73 20 54 52 55 45 20 |on retur|ns TRUE |
|00000aa0| 69 66 20 74 68 65 20 4d | 6f 6f 73 65 20 69 73 20 |if the M|oose is |
|00000ab0| 69 6e 73 74 61 6c 6c 65 | 64 2e 20 20 49 66 20 54 |installe|d. If T|
|00000ac0| 52 55 45 2c 20 74 68 65 | 20 20 20 20 20 20 7d 0d |RUE, the| }.|
|00000ad0| 7b 20 20 20 20 4d 6f 6f | 73 65 50 74 72 20 69 73 |{ Moo|sePtr is|
|00000ae0| 20 72 65 74 75 72 6e 65 | 64 20 61 73 20 61 20 70 | returne|d as a p|
|00000af0| 6f 69 6e 74 65 72 20 74 | 6f 20 74 68 65 20 4d 6f |ointer t|o the Mo|
|00000b00| 6f 73 65 27 73 20 67 6c | 6f 62 61 6c 20 76 61 72 |ose's gl|obal var|
|00000b10| 69 61 62 6c 65 73 2e 20 | 28 53 65 65 20 20 7d 0d |iables. |(See }.|
|00000b20| 7b 20 20 20 20 74 68 65 | 20 64 65 66 69 6e 69 74 |{ the| definit|
|00000b30| 69 6f 6e 20 6f 66 20 61 | 20 22 4d 6f 6f 73 65 52 |ion of a| "MooseR|
|00000b40| 65 63 22 20 62 65 6c 6f | 77 29 20 20 43 68 61 6e |ec" belo|w) Chan|
|00000b50| 67 69 6e 67 20 74 68 65 | 20 4d 6f 6f 73 65 27 73 |ging the| Moose's|
|00000b60| 20 76 61 72 69 61 62 6c | 65 73 20 69 73 20 7d 0d | variabl|es is }.|
|00000b70| 7b 20 20 20 20 68 6f 77 | 20 79 6f 75 3a 20 4d 61 |{ how| you: Ma|
|00000b80| 6b 65 20 74 68 65 20 4d | 6f 6f 73 65 20 74 61 6c |ke the M|oose tal|
|00000b90| 6b 2c 20 43 68 61 6e 67 | 65 20 50 69 74 63 68 2c |k, Chang|e Pitch,|
|00000ba0| 52 61 74 65 2c 20 65 74 | 63 2e 20 20 50 6c 75 73 |Rate, et|c. Plus|
|00000bb0| 20 6c 6f 74 73 20 6d 6f | 72 65 2e 2e 2e 20 7d 0d | lots mo|re... }.|
|00000bc0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|00000bd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000be0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000bf0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000c00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000c10| 7b 20 20 20 20 43 6f 6e | 73 69 64 65 72 20 74 68 |{ Con|sider th|
|00000c20| 65 73 65 20 63 6f 64 65 | 20 66 72 61 67 6d 65 6e |ese code| fragmen|
|00000c30| 74 73 20 73 68 6f 77 69 | 6e 67 20 68 6f 77 20 74 |ts showi|ng how t|
|00000c40| 6f 20 75 73 65 20 74 68 | 61 74 20 4d 6f 6f 73 65 |o use th|at Moose|
|00000c50| 50 74 72 2e 20 20 20 20 | 20 20 20 20 20 20 7d 0d |Ptr. | }.|
|00000c60| 7b 20 20 20 20 49 46 20 | 47 65 74 4d 6f 6f 73 65 |{ IF |GetMoose|
|00000c70| 28 20 4d 79 4d 6f 6f 73 | 65 50 74 72 20 29 20 54 |( MyMoos|ePtr ) T|
|00000c80| 48 45 4e 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |HEN | |
|00000c90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000ca0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000cb0| 7b 20 20 20 20 20 20 20 | 20 42 45 47 49 4e 20 20 |{ | BEGIN |
|00000cc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000cd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000cf0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000d00| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 79 4d |{ | MyM|
|00000d10| 6f 6f 73 65 50 74 72 5e | 2e 52 61 74 65 20 20 3a |oosePtr^|.Rate :|
|00000d20| 3d 20 20 31 36 30 3b 20 | 20 20 20 20 22 43 68 61 |= 160; | "Cha|
|00000d30| 6e 67 65 20 74 68 65 20 | 52 61 74 65 2e 20 20 20 |nge the |Rate. |
|00000d40| 38 35 20 74 68 72 75 20 | 34 32 35 22 20 20 7d 0d |85 thru |425" }.|
|00000d50| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 79 4d |{ | MyM|
|00000d60| 6f 6f 73 65 50 74 72 5e | 2e 50 69 74 63 68 20 3a |oosePtr^|.Pitch :|
|00000d70| 3d 20 20 31 33 30 3b 20 | 20 20 20 20 22 43 68 61 |= 130; | "Cha|
|00000d80| 6e 67 65 20 50 69 74 63 | 68 2e 20 20 36 35 20 74 |nge Pitc|h. 65 t|
|00000d90| 68 72 75 20 35 30 30 22 | 20 20 20 20 20 20 7d 0d |hru 500"| }.|
|00000da0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 79 4d |{ | MyM|
|00000db0| 6f 6f 73 65 50 74 72 5e | 2e 44 65 6c 61 79 20 3a |oosePtr^|.Delay :|
|00000dc0| 3d 20 36 30 30 30 3b 20 | 20 20 20 20 22 49 6e 63 |= 6000; | "Inc|
|00000dd0| 72 65 61 73 65 20 73 70 | 65 61 6b 69 6e 67 20 64 |rease sp|eaking d|
|00000de0| 65 6c 61 79 22 20 20 20 | 20 20 20 20 20 20 7d 0d |elay" | }.|
|00000df0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 79 4d |{ | MyM|
|00000e00| 6f 6f 73 65 50 74 72 5e | 2e 41 6e 69 6d 61 74 65 |oosePtr^|.Animate|
|00000e10| 20 3a 3d 20 30 3b 20 20 | 20 20 20 20 22 54 75 72 | := 0; | "Tur|
|00000e20| 6e 20 4f 46 46 20 61 6e | 69 6d 61 74 69 6f 6e 2e |n OFF an|imation.|
|00000e30| 20 20 31 3d 4f 4e 2e 22 | 20 20 20 20 20 20 7d 0d | 1=ON."| }.|
|00000e40| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 79 4d |{ | MyM|
|00000e50| 6f 6f 73 65 50 74 72 5e | 2e 4d 6f 6f 73 46 6c 61 |oosePtr^|.MoosFla|
|00000e60| 67 73 20 3a 3d 20 4d 79 | 4d 6f 6f 73 65 50 74 72 |gs := My|MoosePtr|
|00000e70| 5e 2e 4d 6f 6f 73 46 6c | 61 67 73 20 2d 20 50 61 |^.MoosFl|ags - Pa|
|00000e80| 75 73 65 4d 61 73 6b 3b | 20 20 20 20 20 20 7d 0d |useMask;| }.|
|00000e90| 7b 20 20 20 20 20 20 20 | 20 45 4e 44 3b 20 20 20 |{ | END; |
|00000ea0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000eb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000ec0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000ed0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00000ee0| 7b 20 20 20 20 4e 6f 74 | 65 73 3a 20 20 20 59 6f |{ Not|es: Yo|
|00000ef0| 75 20 73 68 6f 75 6c 64 | 20 63 68 61 6e 67 65 20 |u should| change |
|00000f00| 74 68 65 20 52 61 74 65 | 2c 50 69 74 63 68 2c 52 |the Rate|,Pitch,R|
|00000f10| 6f 62 6f 74 69 63 20 73 | 65 74 74 69 6e 67 73 20 |obotic s|ettings |
|00000f20| 6f 6e 6c 79 20 69 6e 20 | 74 68 65 20 20 20 7d 0d |only in |the }.|
|00000f30| 7b 20 20 20 20 74 68 65 | 20 69 6e 69 74 69 61 6c |{ the| initial|
|00000f40| 69 7a 61 74 69 6f 6e 20 | 70 61 72 74 20 6f 66 20 |ization |part of |
|00000f50| 79 6f 75 72 20 70 72 6f | 67 72 61 6d 2c 20 61 66 |your pro|gram, af|
|00000f60| 74 65 72 20 53 74 61 72 | 74 4d 6f 6f 73 65 20 62 |ter Star|tMoose b|
|00000f70| 75 74 20 62 65 66 6f 72 | 65 20 20 20 20 20 7d 0d |ut befor|e }.|
|00000f80| 7b 20 20 20 20 74 68 65 | 20 6d 61 69 6e 20 65 76 |{ the| main ev|
|00000f90| 65 6e 74 20 6c 6f 6f 70 | 2e 20 20 54 68 65 20 44 |ent loop|. The D|
|00000fa0| 65 6c 61 79 2c 20 41 6e | 69 6d 61 74 65 2c 49 6e |elay, An|imate,In|
|00000fb0| 74 65 72 2c 4d 6f 6f 73 | 46 6c 61 67 73 2c 45 6e |ter,Moos|Flags,En|
|00000fc0| 61 62 6c 65 20 73 65 74 | 74 69 6e 67 73 20 7d 0d |able set|tings }.|
|00000fd0| 7b 20 20 20 20 63 61 6e | 20 62 65 20 63 68 61 6e |{ can| be chan|
|00000fe0| 67 65 64 20 61 6e 79 74 | 69 6d 65 2e 20 20 4d 6f |ged anyt|ime. Mo|
|00000ff0| 6f 73 46 6c 61 67 73 20 | 61 72 65 20 62 69 74 73 |osFlags |are bits|
|00001000| 20 61 6c 6c 6f 77 69 6e | 67 20 79 6f 75 20 74 6f | allowin|g you to|
|00001010| 20 73 65 6c 65 63 74 69 | 76 65 6c 79 20 20 7d 0d | selecti|vely }.|
|00001020| 7b 20 20 20 20 74 75 72 | 6e 20 6f 66 66 20 4d 6f |{ tur|n off Mo|
|00001030| 6f 73 65 20 66 75 6e 63 | 74 69 6f 6e 73 2e 20 28 |ose func|tions. (|
|00001040| 49 66 20 79 6f 75 20 74 | 75 72 6e 20 66 6c 61 67 |If you t|urn flag|
|00001050| 73 20 4f 46 46 2c 20 74 | 75 72 6e 20 74 68 65 6d |s OFF, t|urn them|
|00001060| 20 62 61 63 6b 20 4f 4e | 20 77 68 65 6e 20 7d 0d | back ON| when }.|
|00001070| 7b 20 20 20 20 79 6f 75 | 72 20 70 72 6f 67 72 61 |{ you|r progra|
|00001080| 6d 20 65 78 69 74 73 2e | 29 20 20 20 20 20 20 20 |m exits.|) |
|00001090| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000010a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000010b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|000010c0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|000010d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000010e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000010f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001100| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001110| 7b 20 20 20 20 49 46 20 | 47 65 74 4d 6f 6f 73 65 |{ IF |GetMoose|
|00001120| 28 20 4d 79 4d 6f 6f 73 | 65 50 74 72 20 29 20 54 |( MyMoos|ePtr ) T|
|00001130| 48 45 4e 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |HEN | |
|00001140| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001150| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001160| 7b 20 20 20 20 20 20 20 | 20 42 45 47 49 4e 20 20 |{ | BEGIN |
|00001170| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001180| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001190| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000011a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|000011b0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 79 4d |{ | MyM|
|000011c0| 6f 6f 73 65 50 74 72 5e | 2e 4e 6f 77 48 61 6e 64 |oosePtr^|.NowHand|
|000011d0| 6c 65 20 3a 3d 20 4d 79 | 50 68 6f 6e 65 6d 65 73 |le := My|Phonemes|
|000011e0| 3b 20 20 22 48 61 6e 64 | 6c 65 20 68 6f 6c 64 69 |; "Hand|le holdi|
|000011f0| 6e 67 20 70 68 6f 6e 65 | 6d 65 73 22 20 20 7d 0d |ng phone|mes" }.|
|00001200| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 79 4d |{ | MyM|
|00001210| 6f 6f 73 65 50 74 72 5e | 2e 4e 6f 77 49 44 20 20 |oosePtr^|.NowID |
|00001220| 3a 3d 20 31 39 38 38 3b | 20 20 20 20 20 22 52 65 |:= 1988;| "Re|
|00001230| 73 20 49 44 20 6f 66 20 | 27 53 54 52 23 27 20 77 |s ID of |'STR#' w|
|00001240| 69 74 68 20 70 68 72 61 | 73 65 73 22 20 20 7d 0d |ith phra|ses" }.|
|00001250| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 79 4d |{ | MyM|
|00001260| 6f 6f 73 65 50 74 72 5e | 2e 4e 6f 77 4e 75 6d 20 |oosePtr^|.NowNum |
|00001270| 3a 3d 20 32 3b 20 20 20 | 20 20 22 55 73 65 20 32 |:= 2; | "Use 2|
|00001280| 6e 64 20 73 74 72 69 6e | 67 20 66 72 6f 6d 20 61 |nd strin|g from a|
|00001290| 62 6f 76 65 20 27 53 54 | 52 23 27 22 20 20 7d 0d |bove 'ST|R#'" }.|
|000012a0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 4d 79 4d |{ | MyM|
|000012b0| 6f 6f 73 65 50 74 72 5e | 2e 53 61 79 43 6f 64 65 |oosePtr^|.SayCode|
|000012c0| 20 20 3a 3d 20 31 3b 20 | 20 20 20 20 22 31 3d 53 | := 1; | "1=S|
|000012d0| 70 65 61 6b 20 54 69 6d | 65 2c 20 20 20 32 3d 53 |peak Tim|e, 2=S|
|000012e0| 61 79 20 47 6f 6f 64 42 | 79 65 2c 22 20 20 7d 0d |ay GoodB|ye," }.|
|000012f0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|00001300| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001310| 20 20 20 20 20 20 20 20 | 20 20 22 33 3d 53 61 79 | | "3=Say|
|00001320| 20 53 77 69 74 63 68 20 | 44 69 73 6b 73 2c 20 20 | Switch |Disks, |
|00001330| 34 3d 53 61 79 20 48 65 | 6c 6c 6f 22 20 20 7d 0d |4=Say He|llo" }.|
|00001340| 7b 20 20 20 20 20 20 20 | 20 45 4e 44 3b 20 20 20 |{ | END; |
|00001350| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001360| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001370| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001380| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001390| 7b 20 20 20 20 4e 6f 74 | 65 73 3a 20 20 54 68 69 |{ Not|es: Thi|
|000013a0| 73 20 73 65 63 74 69 6f | 6e 20 73 68 6f 77 73 20 |s sectio|n shows |
|000013b0| 33 20 70 6f 73 73 69 62 | 6c 65 20 77 61 79 73 20 |3 possib|le ways |
|000013c0| 74 6f 20 6d 61 6b 65 20 | 74 68 65 20 4d 6f 6f 73 |to make |the Moos|
|000013d0| 65 20 73 70 65 61 6b 2e | 20 59 6f 75 20 20 7d 0d |e speak.| You }.|
|000013e0| 7b 20 20 20 20 63 61 6e | 20 67 69 76 65 20 69 74 |{ can| give it|
|000013f0| 20 61 20 68 61 6e 64 6c | 65 20 68 6f 6c 64 69 6e | a handl|e holdin|
|00001400| 67 20 70 68 6f 6e 65 6d | 65 73 2c 20 4f 52 2c 20 |g phonem|es, OR, |
|00001410| 20 79 6f 75 20 63 61 6e | 20 67 69 76 65 20 69 74 | you can| give it|
|00001420| 20 61 20 27 53 54 52 23 | 27 20 49 44 20 20 7d 0d | a 'STR#|' ID }.|
|00001430| 7b 20 20 20 20 61 6e 64 | 20 6e 75 6d 62 65 72 2c |{ and| number,|
|00001440| 20 20 20 4f 52 2c 20 20 | 79 6f 75 20 63 61 6e 20 | OR, |you can |
|00001450| 67 69 76 65 20 69 74 20 | 61 20 22 43 6f 64 65 22 |give it |a "Code"|
|00001460| 2e 20 20 54 68 65 6e 2c | 20 79 6f 75 72 20 70 72 |. Then,| your pr|
|00001470| 6f 67 72 61 6d 20 73 68 | 6f 75 6c 64 20 20 7d 0d |ogram sh|ould }.|
|00001480| 7b 20 20 20 20 6a 75 73 | 74 20 72 65 74 75 72 6e |{ jus|t return|
|00001490| 20 74 6f 20 69 74 27 73 | 20 6d 61 69 6e 20 65 76 | to it's| main ev|
|000014a0| 65 6e 74 20 6c 6f 6f 70 | 2c 20 20 62 65 63 61 75 |ent loop|, becau|
|000014b0| 73 65 20 74 68 65 20 4d | 6f 6f 73 65 20 77 69 6c |se the M|oose wil|
|000014c0| 6c 20 77 61 69 74 20 75 | 6e 74 69 6c 20 20 7d 0d |l wait u|ntil }.|
|000014d0| 7b 20 20 20 20 74 68 65 | 72 65 20 61 72 65 20 6e |{ the|re are n|
|000014e0| 6f 20 6d 6f 72 65 20 65 | 76 65 6e 74 73 20 62 65 |o more e|vents be|
|000014f0| 66 6f 72 65 20 73 70 65 | 61 6b 69 6e 67 20 77 68 |fore spe|aking wh|
|00001500| 61 74 20 79 6f 75 20 74 | 6f 6c 64 20 69 74 2e 20 |at you t|old it. |
|00001510| 20 20 49 66 20 74 68 65 | 72 65 20 20 20 20 7d 0d | If the|re }.|
|00001520| 7b 20 20 20 20 77 61 73 | 20 61 20 70 72 65 76 69 |{ was| a previ|
|00001530| 6f 75 73 20 22 4e 6f 77 | 48 61 6e 64 6c 65 22 20 |ous "Now|Handle" |
|00001540| 74 68 65 72 65 2c 20 20 | 79 6f 75 72 20 70 72 6f |there, |your pro|
|00001550| 67 72 61 6d 20 73 68 6f | 75 6c 64 20 5f 44 69 73 |gram sho|uld _Dis|
|00001560| 70 6f 73 48 61 6e 64 6c | 65 20 20 20 20 20 7d 0d |posHandl|e }.|
|00001570| 7b 20 20 20 20 69 74 20 | 62 65 66 6f 72 65 20 73 |{ it |before s|
|00001580| 74 6f 72 69 6e 67 20 61 | 20 6e 65 77 20 68 61 6e |toring a| new han|
|00001590| 64 6c 65 20 74 68 65 72 | 65 2e 20 28 4f 72 20 69 |dle ther|e. (Or i|
|000015a0| 74 20 63 6f 75 6c 64 20 | 61 64 64 20 74 68 65 20 |t could |add the |
|000015b0| 6e 65 77 20 70 68 6f 6e | 65 6d 65 73 20 20 7d 0d |new phon|emes }.|
|000015c0| 7b 20 20 20 20 6f 6e 74 | 6f 20 74 68 65 20 65 6e |{ ont|o the en|
|000015d0| 64 20 6f 66 20 74 68 65 | 20 6f 6c 64 2e 29 20 20 |d of the| old.) |
|000015e0| 54 68 65 20 4d 6f 6f 73 | 65 20 77 69 6c 6c 20 64 |The Moos|e will d|
|000015f0| 69 73 70 6f 73 65 20 6f | 66 20 74 68 65 20 68 61 |ispose o|f the ha|
|00001600| 6e 64 6c 65 20 6f 6e 63 | 65 20 20 20 20 20 7d 0d |ndle onc|e }.|
|00001610| 7b 20 20 20 20 69 74 27 | 73 20 66 69 6e 69 73 68 |{ it'|s finish|
|00001620| 65 64 20 73 70 65 61 6b | 69 6e 67 20 69 74 2e 20 |ed speak|ing it. |
|00001630| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001640| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001650| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001660| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|00001670| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001680| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001690| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000016a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|000016b0| 7b 20 20 50 52 4f 43 45 | 44 55 52 45 20 43 61 6c |{ PROCE|DURE Cal|
|000016c0| 6c 4d 6f 6f 73 65 54 6f | 53 70 65 61 6b 3b 20 20 |lMooseTo|Speak; |
|000016d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000016e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000016f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001700| 7b 20 20 20 20 20 41 66 | 74 65 72 20 79 6f 75 20 |{ Af|ter you |
|00001710| 68 61 76 65 20 73 74 6f | 72 65 64 20 61 20 22 4e |have sto|red a "N|
|00001720| 6f 77 48 61 6e 64 6c 65 | 22 2c 22 53 61 79 43 6f |owHandle|","SayCo|
|00001730| 64 65 22 2c 20 6f 72 20 | 4e 6f 77 49 44 26 4e 75 |de", or |NowID&Nu|
|00001740| 6d 2c 20 20 74 68 65 72 | 65 20 20 20 20 20 7d 0d |m, ther|e }.|
|00001750| 7b 20 20 20 20 20 6d 61 | 79 20 62 65 20 73 69 74 |{ ma|y be sit|
|00001760| 75 61 74 69 6f 6e 73 20 | 77 68 65 72 65 20 79 6f |uations |where yo|
|00001770| 75 20 77 61 6e 74 20 74 | 68 65 20 4d 6f 6f 73 65 |u want t|he Moose|
|00001780| 20 74 6f 20 73 70 65 61 | 6b 20 69 74 20 72 69 67 | to spea|k it rig|
|00001790| 68 74 20 61 77 61 79 2c | 20 20 20 20 20 20 7d 0d |ht away,| }.|
|000017a0| 7b 20 20 20 20 20 69 6e | 73 74 65 61 64 20 6f 66 |{ in|stead of|
|000017b0| 20 77 61 69 74 69 6e 67 | 20 66 6f 72 20 74 68 65 | waiting| for the|
|000017c0| 20 6d 61 69 6e 20 65 76 | 65 6e 74 20 6c 6f 6f 70 | main ev|ent loop|
|000017d0| 2e 20 20 54 68 69 73 20 | 72 6f 75 74 69 6e 65 20 |. This |routine |
|000017e0| 67 69 76 65 73 20 74 68 | 65 20 20 20 20 20 7d 0d |gives th|e }.|
|000017f0| 7b 20 20 20 20 20 4d 6f | 6f 73 65 20 61 20 63 68 |{ Mo|ose a ch|
|00001800| 61 6e 63 65 20 74 6f 20 | 74 61 6c 6b 20 72 69 67 |ance to |talk rig|
|00001810| 68 74 20 61 77 61 79 2c | 20 62 79 20 63 6f 6e 76 |ht away,| by conv|
|00001820| 69 6e 63 69 6e 67 20 74 | 68 65 20 4d 6f 6f 73 65 |incing t|he Moose|
|00001830| 20 74 68 61 74 20 74 68 | 65 72 65 20 20 20 7d 0d | that th|ere }.|
|00001840| 7b 20 20 20 20 20 61 72 | 65 20 6f 6e 6c 79 20 4e |{ ar|e only N|
|00001850| 55 4c 4c 20 65 76 65 6e | 74 73 20 6f 63 63 75 72 |ULL even|ts occur|
|00001860| 72 69 6e 67 2e 20 20 41 | 6e 6f 74 68 65 72 20 70 |ring. A|nother p|
|00001870| 6c 61 63 65 20 74 6f 20 | 75 73 65 20 74 68 69 73 |lace to |use this|
|00001880| 20 70 72 6f 63 65 64 75 | 72 65 20 69 73 20 7d 0d | procedu|re is }.|
|00001890| 7b 20 20 20 20 20 61 66 | 74 65 72 20 22 53 74 61 |{ af|ter "Sta|
|000018a0| 72 74 4d 6f 6f 73 65 22 | 2c 20 28 62 65 66 6f 72 |rtMoose"|, (befor|
|000018b0| 65 20 74 68 65 20 6d 61 | 69 6e 20 65 76 65 6e 74 |e the ma|in event|
|000018c0| 20 6c 6f 6f 70 29 20 74 | 6f 20 66 6f 72 63 65 20 | loop) t|o force |
|000018d0| 74 68 65 20 4d 6f 6f 73 | 65 20 20 20 20 20 7d 0d |the Moos|e }.|
|000018e0| 7b 20 20 20 20 20 74 6f | 20 66 75 6c 6c 79 20 70 |{ to| fully p|
|000018f0| 72 65 70 61 72 65 20 66 | 6f 72 20 73 70 65 61 6b |repare f|or speak|
|00001900| 69 6e 67 2e 20 20 20 20 | 20 20 20 20 20 20 20 20 |ing. | |
|00001910| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001920| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001930| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|00001940| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001950| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001960| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001970| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001980| 7b 20 20 41 20 67 6f 6f | 64 20 63 6f 6e 76 65 6e |{ A goo|d conven|
|00001990| 69 65 6e 74 20 77 61 79 | 20 74 6f 20 61 64 64 20 |ient way| to add |
|000019a0| 6f 70 74 69 6f 6e 61 6c | 20 73 70 65 65 63 68 20 |optional| speech |
|000019b0| 69 6e 74 6f 20 79 6f 75 | 72 20 70 72 6f 67 72 61 |into you|r progra|
|000019c0| 6d 73 20 69 73 20 74 6f | 20 75 73 65 20 20 7d 0d |ms is to| use }.|
|000019d0| 7b 20 20 61 20 73 61 6d | 70 6c 65 20 70 72 6f 63 |{ a sam|ple proc|
|000019e0| 65 64 75 72 65 20 6c 69 | 6b 65 20 74 68 69 73 3a |edure li|ke this:|
|000019f0| 20 20 20 28 72 65 66 65 | 72 65 6e 63 69 6e 67 20 | (refe|rencing |
|00001a00| 73 74 72 69 6e 67 73 20 | 69 6e 20 61 20 53 54 52 |strings |in a STR|
|00001a10| 23 20 72 65 73 6f 75 72 | 63 65 29 20 20 20 7d 0d |# resour|ce) }.|
|00001a20| 7b 20 20 50 52 4f 43 45 | 44 55 52 45 20 53 70 65 |{ PROCE|DURE Spe|
|00001a30| 61 6b 50 68 72 61 73 65 | 28 20 73 49 44 3a 20 69 |akPhrase|( sID: i|
|00001a40| 6e 74 65 67 65 72 3b 20 | 73 4e 75 6d 3a 20 69 6e |nteger; |sNum: in|
|00001a50| 74 65 67 65 72 20 29 3b | 20 20 20 20 20 20 20 20 |teger );| |
|00001a60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001a70| 7b 20 20 20 20 20 56 41 | 52 20 20 20 20 20 20 20 |{ VA|R |
|00001a80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001a90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001aa0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001ab0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001ac0| 7b 20 20 20 20 20 20 20 | 20 20 20 6d 20 3a 20 4d |{ | m : M|
|00001ad0| 6f 6f 73 65 50 74 72 3b | 20 20 20 20 20 20 20 20 |oosePtr;| |
|00001ae0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001af0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001b00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001b10| 7b 20 20 42 45 47 49 4e | 20 20 20 20 20 20 20 20 |{ BEGIN| |
|00001b20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001b30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001b40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001b50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001b60| 7b 20 20 20 20 20 20 20 | 49 46 20 47 65 74 4d 6f |{ |IF GetMo|
|00001b70| 6f 73 65 28 6d 29 20 54 | 48 45 4e 20 20 20 20 20 |ose(m) T|HEN |
|00001b80| 20 20 20 20 20 20 20 20 | 22 49 66 20 74 68 65 20 | |"If the |
|00001b90| 4d 6f 6f 73 65 20 69 73 | 20 69 6e 73 74 61 6c 6c |Moose is| install|
|00001ba0| 65 64 22 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d |ed" | }.|
|00001bb0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 49 46 20 28 |{ | IF (|
|00001bc0| 6d 5e 2e 45 6e 61 62 6c | 65 3d 31 29 20 54 48 45 |m^.Enabl|e=1) THE|
|00001bd0| 4e 20 20 20 20 20 20 20 | 22 61 6e 64 20 69 66 20 |N |"and if |
|00001be0| 74 68 65 20 4d 6f 6f 73 | 65 20 69 73 20 65 6e 61 |the Moos|e is ena|
|00001bf0| 62 6c 65 64 22 20 20 20 | 20 20 20 20 20 20 7d 0d |bled" | }.|
|00001c00| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|00001c10| 42 45 47 49 4e 20 20 20 | 20 20 20 20 20 20 20 20 |BEGIN | |
|00001c20| 20 20 20 20 20 20 20 20 | 22 74 68 65 6e 20 74 65 | |"then te|
|00001c30| 6c 6c 20 69 74 20 74 6f | 20 73 70 65 61 6b 20 61 |ll it to| speak a|
|00001c40| 20 73 74 72 69 6e 67 22 | 20 20 20 20 20 20 7d 0d | string"| }.|
|00001c50| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|00001c60| 20 20 20 20 6d 5e 2e 4e | 6f 77 4e 75 6d 20 3a 3d | m^.N|owNum :=|
|00001c70| 20 73 4e 75 6d 3b 20 20 | 22 66 72 6f 6d 20 61 20 | sNum; |"from a |
|00001c80| 53 54 52 23 20 72 65 73 | 6f 75 72 63 65 2e 22 20 |STR# res|ource." |
|00001c90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001ca0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|00001cb0| 20 20 20 20 6d 5e 2e 4e | 6f 77 49 44 20 20 3a 3d | m^.N|owID :=|
|00001cc0| 20 73 49 44 3b 20 20 20 | 20 20 20 20 20 20 20 20 | sID; | |
|00001cd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001cf0| 7b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{ | |
|00001d00| 45 4e 44 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |END; | |
|00001d10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001d40| 7b 20 20 45 4e 44 3b 20 | 20 20 20 20 20 20 20 20 |{ END; | |
|00001d50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00001d90| 0d 0d 0d 55 4e 49 54 20 | 4d 6f 6f 73 65 55 6e 69 |...UNIT |MooseUni|
|00001da0| 74 3b 0d 0d 49 4e 54 45 | 52 46 41 43 45 0d 0d 20 |t;..INTE|RFACE.. |
|00001db0| 20 7b 20 20 44 69 66 66 | 65 72 65 6e 74 20 55 53 | { Diff|erent US|
|00001dc0| 45 53 20 61 72 65 20 6e | 65 65 64 65 64 20 66 6f |ES are n|eeded fo|
|00001dd0| 72 20 64 69 66 66 65 72 | 65 6e 74 20 69 6d 70 6c |r differ|ent impl|
|00001de0| 65 6d 65 6e 74 61 74 69 | 6f 6e 73 2e 20 20 20 20 |ementati|ons. |
|00001df0| 20 20 20 20 20 7d 0d 20 | 20 7b 20 20 4e 65 65 64 | }. | { Need|
|00001e00| 65 64 20 74 6f 20 64 65 | 66 69 6e 65 20 74 68 69 |ed to de|fine thi|
|00001e10| 6e 67 73 20 6c 69 6b 65 | 20 22 53 74 72 32 35 35 |ngs like| "Str255|
|00001e20| 22 2c 22 48 61 6e 64 6c | 65 22 2c 22 50 74 72 22 |","Handl|e","Ptr"|
|00001e30| 2c 20 65 74 63 20 20 20 | 20 20 20 20 20 7d 0d 20 |, etc | }. |
|00001e40| 20 7b 20 20 70 6c 75 73 | 20 64 65 66 69 6e 65 73 | { plus| defines|
|00001e50| 20 54 6f 6f 6c 62 6f 78 | 20 54 72 61 70 73 20 61 | Toolbox| Traps a|
|00001e60| 6e 64 20 70 61 72 61 6d | 65 74 65 72 73 2e 20 20 |nd param|eters. |
|00001e70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001e80| 20 20 20 20 20 7d 0d 20 | 20 7b 20 20 55 53 45 53 | }. | { USES|
|00001e90| 20 6d 61 63 69 6e 74 66 | 20 20 20 20 20 20 28 49 | macintf| (I|
|00001ea0| 20 74 68 69 6e 6b 2e 2e | 2e 3f 29 20 20 20 20 20 | think..|.?) |
|00001eb0| 20 20 20 20 20 20 20 55 | 73 65 73 20 66 6f 72 20 | U|ses for |
|00001ec0| 54 4d 4c 20 20 20 20 20 | 20 20 20 20 20 7d 0d 20 |TML | }. |
|00001ed0| 20 7b 20 20 4e 6f 20 55 | 53 45 53 20 6e 65 65 64 | { No U|SES need|
|00001ee0| 65 64 20 66 6f 72 20 4c | 69 67 68 74 53 70 65 65 |ed for L|ightSpee|
|00001ef0| 64 2c 20 62 75 74 20 74 | 68 65 20 4d 6f 6f 73 65 |d, but t|he Moose|
|00001f00| 20 63 6f 6d 70 65 74 65 | 73 20 66 6f 72 20 6d 65 | compete|s for me|
|00001f10| 6d 6f 72 79 20 7d 0d 20 | 55 53 45 53 20 4d 65 6d |mory }. |USES Mem|
|00001f20| 74 79 70 65 73 2c 20 51 | 75 69 63 6b 64 72 61 77 |types, Q|uickdraw|
|00001f30| 2c 20 4f 53 49 6e 74 66 | 2c 20 54 6f 6f 6c 49 6e |, OSIntf|, ToolIn|
|00001f40| 74 66 3b 20 20 7b 20 55 | 73 65 73 20 66 6f 72 20 |tf; { U|ses for |
|00001f50| 4d 50 57 20 20 20 20 20 | 20 20 20 20 20 7d 0d 0d |MPW | }..|
|00001f60| 20 20 20 20 43 4f 4e 53 | 54 0d 20 20 20 20 20 20 | CONS|T. |
|00001f70| 20 20 56 62 6c 51 75 65 | 75 65 20 20 20 20 3d 20 | VblQue|ue = |
|00001f80| 24 30 31 36 30 3b 20 20 | 20 20 20 20 7b 20 56 65 |$0160; | { Ve|
|00001f90| 72 74 69 63 61 6c 20 52 | 65 74 72 61 63 65 20 74 |rtical R|etrace t|
|00001fa0| 61 73 6b 73 20 51 75 65 | 75 65 20 68 65 61 64 65 |asks Que|ue heade|
|00001fb0| 72 2e 20 20 20 7d 0d 20 | 20 20 20 20 20 20 20 41 |r. }. | A|
|00001fc0| 70 70 6c 53 63 72 61 74 | 63 68 20 3d 20 24 30 41 |pplScrat|ch = $0A|
|00001fd0| 37 38 3b 20 20 20 20 20 | 20 7b 20 4c 6f 63 61 74 |78; | { Locat|
|00001fe0| 69 6f 6e 20 6f 66 20 74 | 65 6d 70 6f 72 61 72 79 |ion of t|emporary|
|00001ff0| 20 67 6c 6f 62 61 6c 20 | 73 74 6f 72 61 67 65 2e | global |storage.|
|00002000| 20 20 7d 0d 20 20 20 20 | 20 20 20 20 50 61 75 73 | }. | Paus|
|00002010| 65 4d 61 73 6b 20 20 20 | 3d 20 24 30 30 30 30 30 |eMask |= $00000|
|00002020| 30 30 31 3b 20 20 7b 20 | 46 6c 61 67 20 74 75 72 |001; { |Flag tur|
|00002030| 6e 73 20 6f 6e 20 50 61 | 75 73 65 20 6d 65 73 73 |ns on Pa|use mess|
|00002040| 61 67 65 73 2e 20 20 20 | 20 20 20 20 20 20 20 7d |ages. | }|
|00002050| 0d 20 20 20 20 20 20 20 | 20 44 53 4d 61 73 6b 20 |. | DSMask |
|00002060| 20 20 20 20 20 3d 20 24 | 30 30 30 30 30 30 30 32 | = $|00000002|
|00002070| 3b 20 20 7b 20 46 6c 61 | 67 20 74 75 72 6e 73 20 |; { Fla|g turns |
|00002080| 6f 6e 20 44 69 73 6b 2d | 53 77 69 74 63 68 20 6d |on Disk-|Switch m|
|00002090| 65 73 73 61 67 65 73 2e | 20 20 20 20 7d 0d 20 20 |essages.| }. |
|000020a0| 20 20 20 20 20 20 45 72 | 72 6f 72 4d 61 73 6b 20 | Er|rorMask |
|000020b0| 20 20 3d 20 24 30 30 30 | 30 30 30 30 34 3b 20 20 | = $000|00004; |
|000020c0| 7b 20 46 6c 61 67 20 74 | 75 72 6e 73 20 6f 6e 20 |{ Flag t|urns on |
|000020d0| 45 72 72 6f 72 20 6d 65 | 73 73 61 67 65 73 2e 20 |Error me|ssages. |
|000020e0| 20 20 20 20 20 20 20 20 | 20 7d 0d 20 20 20 20 20 | | }. |
|000020f0| 20 20 20 41 6c 61 72 6d | 4d 61 73 6b 20 20 20 3d | Alarm|Mask =|
|00002100| 20 24 30 30 30 30 30 30 | 30 38 3b 20 20 7b 20 46 | $000000|08; { F|
|00002110| 6c 61 67 20 74 75 72 6e | 73 20 6f 6e 20 41 6c 61 |lag turn|s on Ala|
|00002120| 72 6d 20 63 6c 6f 63 6b | 20 63 68 65 63 6b 69 6e |rm clock| checkin|
|00002130| 67 2e 20 20 20 20 7d 0d | 20 20 20 20 20 20 20 20 |g. }.| |
|00002140| 47 5a 4d 61 73 6b 20 20 | 20 20 20 20 3d 20 24 30 |GZMask | = $0|
|00002150| 30 30 30 30 30 31 30 3b | 20 20 7b 20 46 6c 61 67 |0000010;| { Flag|
|00002160| 20 74 75 72 6e 73 20 6f | 6e 20 47 72 6f 77 5a 6f | turns o|n GrowZo|
|00002170| 6e 65 20 73 68 75 74 2d | 6f 66 66 20 4d 6f 6f 73 |ne shut-|off Moos|
|00002180| 65 2e 20 7d 0d 20 20 20 | 20 20 20 20 09 20 20 20 |e. }. | . |
|00002190| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000021a0| 20 20 20 20 20 20 20 7b | 20 49 6e 69 74 69 61 6c | {| Initial|
|000021b0| 6c 79 2c 20 61 6c 6c 20 | 66 6c 61 67 73 20 61 72 |ly, all |flags ar|
|000021c0| 65 20 31 20 3d 20 4f 4e | 2e 20 20 20 20 20 20 20 |e 1 = ON|. |
|000021d0| 7d 0d 0d 0d 20 20 20 20 | 54 59 50 45 0d 20 20 20 |}... |TYPE. |
|000021e0| 20 20 20 20 20 53 69 67 | 54 79 70 65 20 3d 20 50 | Sig|Type = P|
|000021f0| 41 43 4b 45 44 20 41 52 | 52 41 59 20 5b 31 2e 2e |ACKED AR|RAY [1..|
|00002200| 34 5d 20 4f 46 20 43 48 | 41 52 3b 0d 20 20 20 20 |4] OF CH|AR;. |
|00002210| 20 20 20 20 4d 6f 6f 73 | 65 50 74 72 20 3d 20 5e | Moos|ePtr = ^|
|00002220| 4d 6f 6f 73 65 52 65 63 | 3b 0d 20 20 20 20 20 20 |MooseRec|;. |
|00002230| 20 20 4d 6f 6f 73 65 52 | 65 63 20 3d 20 52 45 43 | MooseR|ec = REC|
|00002240| 4f 52 44 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |ORD | |
|00002250| 20 20 7b 20 54 68 69 73 | 20 72 65 63 6f 72 64 20 | { This| record |
|00002260| 69 73 20 61 6e 20 65 78 | 74 65 6e 73 69 6f 6e 20 |is an ex|tension |
|00002270| 6f 66 20 61 20 20 20 20 | 7d 0d 20 20 20 20 20 20 |of a |}. |
|00002280| 20 20 20 20 20 20 20 20 | 20 20 71 4c 69 6e 6b 20 | | qLink |
|00002290| 3a 20 4d 6f 6f 73 65 50 | 74 72 3b 20 20 20 20 20 |: MooseP|tr; |
|000022a0| 20 20 7b 20 56 42 4c 20 | 71 75 65 75 65 20 65 6c | { VBL |queue el|
|000022b0| 65 6d 65 6e 74 2c 20 77 | 69 74 68 20 73 74 75 66 |ement, w|ith stuf|
|000022c0| 66 20 61 64 64 65 64 20 | 7d 0d 20 20 20 20 20 20 |f added |}. |
|000022d0| 20 20 20 20 20 20 20 20 | 20 20 71 54 79 70 65 20 | | qType |
|000022e0| 3a 20 49 6e 74 65 67 65 | 72 3b 20 20 20 20 20 20 |: Intege|r; |
|000022f0| 20 20 7b 20 6f 6e 74 6f | 20 74 68 65 20 65 6e 64 | { onto| the end|
|00002300| 2e 20 20 54 68 65 20 4d | 6f 6f 73 65 20 73 74 6f |. The M|oose sto|
|00002310| 72 65 73 20 69 74 73 20 | 7d 0d 20 20 20 20 20 20 |res its |}. |
|00002320| 20 20 20 20 20 20 20 20 | 20 20 76 62 6c 41 64 64 | | vblAdd|
|00002330| 72 20 3a 20 50 74 72 3b | 20 20 20 20 20 20 20 20 |r : Ptr;| |
|00002340| 20 20 7b 20 67 6c 6f 62 | 61 6c 73 20 69 6e 20 61 | { glob|als in a|
|00002350| 20 56 42 4c 20 71 75 65 | 75 65 20 65 6c 65 6d 65 | VBL que|ue eleme|
|00002360| 6e 74 2e 20 20 20 20 20 | 7d 0d 20 20 20 20 20 20 |nt. |}. |
|00002370| 20 20 20 20 20 20 20 20 | 20 20 76 62 6c 43 6f 75 | | vblCou|
|00002380| 6e 74 20 3a 20 49 6e 74 | 65 67 65 72 3b 20 20 20 |nt : Int|eger; |
|00002390| 20 20 7b 20 4d 6f 73 74 | 20 6f 66 20 74 68 65 73 | { Most| of thes|
|000023a0| 65 20 73 68 6f 75 6c 64 | 6e 27 74 20 62 65 20 63 |e should|n't be c|
|000023b0| 68 61 6e 67 65 64 2e 20 | 7d 0d 20 20 20 20 20 20 |hanged. |}. |
|000023c0| 20 20 20 20 20 20 20 20 | 20 20 76 62 6c 50 68 61 | | vblPha|
|000023d0| 73 65 20 3a 20 49 6e 74 | 65 67 65 72 3b 0d 20 20 |se : Int|eger;. |
|000023e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 53 69 | | Si|
|000023f0| 67 20 3a 20 53 69 67 54 | 79 70 65 3b 20 20 20 20 |g : SigT|ype; |
|00002400| 20 20 20 20 20 20 7b 20 | 53 69 67 6e 61 74 75 72 | { |Signatur|
|00002410| 65 20 6f 66 20 4d 6f 6f | 73 65 20 56 42 4c 2e 20 |e of Moo|se VBL. |
|00002420| 27 54 41 4c 4b 27 20 20 | 20 20 20 20 7d 0d 20 20 |'TALK' | }. |
|00002430| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 52 61 | | Ra|
|00002440| 74 65 20 3a 20 69 6e 74 | 65 67 65 72 3b 20 20 20 |te : int|eger; |
|00002450| 20 20 20 20 20 20 7b 20 | 4d 61 63 69 6e 54 61 6c | { |MacinTal|
|00002460| 6b 20 73 70 65 61 6b 69 | 6e 67 20 72 61 74 65 2e |k speaki|ng rate.|
|00002470| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 0d 20 20 | | }. |
|00002480| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 50 69 | | Pi|
|00002490| 74 63 68 20 3a 20 69 6e | 74 65 67 65 72 3b 20 20 |tch : in|teger; |
|000024a0| 20 20 20 20 20 20 7b 20 | 4d 61 63 69 6e 54 61 6c | { |MacinTal|
|000024b0| 6b 20 73 70 65 61 6b 69 | 6e 67 20 70 69 74 63 68 |k speaki|ng pitch|
|000024c0| 2e 20 20 20 20 20 20 20 | 20 20 20 20 7d 0d 20 20 |. | }. |
|000024d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 44 65 | | De|
|000024e0| 6c 61 79 20 3a 20 69 6e | 74 65 67 65 72 3b 20 20 |lay : in|teger; |
|000024f0| 20 20 20 20 20 20 7b 20 | 54 69 63 6b 73 20 62 65 | { |Ticks be|
|00002500| 74 77 65 65 6e 20 50 61 | 75 73 65 20 6d 65 73 73 |tween Pa|use mess|
|00002510| 61 67 65 73 2e 20 20 20 | 20 20 20 20 7d 0d 20 20 |ages. | }. |
|00002520| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 52 6f | | Ro|
|00002530| 62 6f 74 20 3a 20 69 6e | 74 65 67 65 72 3b 20 20 |bot : in|teger; |
|00002540| 20 20 20 20 20 20 7b 20 | 52 6f 62 6f 74 69 63 20 | { |Robotic |
|00002550| 73 65 74 74 69 6e 67 2e | 20 31 3d 4f 4e 2c 20 30 |setting.| 1=ON, 0|
|00002560| 3d 4f 46 46 2e 20 20 20 | 20 20 20 20 7d 0d 20 20 |=OFF. | }. |
|00002570| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 45 6e | | En|
|00002580| 61 62 6c 65 20 3a 20 69 | 6e 74 65 67 65 72 3b 20 |able : i|nteger; |
|00002590| 20 20 20 20 20 20 7b 20 | 54 61 6c 6b 69 6e 67 20 | { |Talking |
|000025a0| 4d 61 63 20 20 20 20 20 | 20 31 3d 4f 4e 2c 20 30 |Mac | 1=ON, 0|
|000025b0| 3d 4f 46 46 2e 20 20 20 | 20 20 20 20 7d 0d 20 20 |=OFF. | }. |
|000025c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 41 6e | | An|
|000025d0| 69 6d 61 74 65 20 3a 20 | 69 6e 74 65 67 65 72 3b |imate : |integer;|
|000025e0| 20 20 20 20 20 20 7b 20 | 41 6e 69 6d 61 74 69 6f | { |Animatio|
|000025f0| 6e 20 20 20 20 20 20 20 | 20 31 3d 4f 4e 2c 20 30 |n | 1=ON, 0|
|00002600| 3d 4f 46 46 2e 20 20 20 | 20 20 20 20 7d 0d 20 20 |=OFF. | }. |
|00002610| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 54 68 | | Th|
|00002620| 65 53 70 65 65 63 68 20 | 3a 20 48 61 6e 64 6c 65 |eSpeech |: Handle|
|00002630| 3b 20 20 20 20 20 7b 20 | 4d 61 63 69 6e 54 61 6c |; { |MacinTal|
|00002640| 6b 27 73 20 74 68 65 53 | 70 65 65 63 68 20 64 61 |k's theS|peech da|
|00002650| 74 61 2e 20 20 20 20 20 | 20 20 20 20 7d 0d 20 20 |ta. | }. |
|00002660| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 45 72 | | Er|
|00002670| 72 6f 72 20 3a 20 69 6e | 74 65 67 65 72 3b 20 20 |ror : in|teger; |
|00002680| 20 20 20 20 20 20 7b 20 | 45 72 72 6f 72 20 63 6f | { |Error co|
|00002690| 64 65 2e 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |de. | |
|000026a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 0d 20 20 | | }. |
|000026b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 6d 52 | | mR|
|000026c0| 65 63 74 31 20 3a 20 6c | 6f 6e 67 69 6e 74 3b 20 |ect1 : l|ongint; |
|000026d0| 20 20 20 20 20 20 7b 20 | 52 65 63 74 61 6e 67 6c | { |Rectangl|
|000026e0| 65 20 6f 66 20 44 2e 41 | 2e 20 77 69 6e 64 6f 77 |e of D.A|. window|
|000026f0| 2e 20 31 73 74 20 68 61 | 6c 66 20 20 7d 0d 20 20 |. 1st ha|lf }. |
|00002700| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 6d 52 | | mR|
|00002710| 65 63 74 32 20 3a 20 6c | 6f 6e 67 69 6e 74 3b 20 |ect2 : l|ongint; |
|00002720| 20 20 20 20 20 20 7b 20 | 52 65 63 74 61 6e 67 6c | { |Rectangl|
|00002730| 65 20 6f 66 20 44 2e 41 | 2e 20 77 69 6e 64 6f 77 |e of D.A|. window|
|00002740| 2e 20 32 6e 64 20 68 61 | 6c 66 20 20 7d 0d 20 20 |. 2nd ha|lf }. |
|00002750| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 4e 6f | | No|
|00002760| 77 49 44 20 3a 20 69 6e | 74 65 67 65 72 3b 20 20 |wID : in|teger; |
|00002770| 20 20 20 20 20 20 7b 20 | 53 54 52 23 20 49 44 20 | { |STR# ID |
|00002780| 68 6f 6c 64 69 6e 67 20 | 70 68 72 61 73 65 20 74 |holding |phrase t|
|00002790| 6f 20 62 65 20 73 70 6f | 6b 65 6e 2e 7d 0d 20 20 |o be spo|ken.}. |
|000027a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 4e 6f | | No|
|000027b0| 77 4e 75 6d 20 3a 20 69 | 6e 74 65 67 65 72 3b 20 |wNum : i|nteger; |
|000027c0| 20 20 20 20 20 20 7b 20 | 53 54 52 23 20 70 68 72 | { |STR# phr|
|000027d0| 61 73 65 20 6e 75 6d 62 | 65 72 20 74 6f 20 62 65 |ase numb|er to be|
|000027e0| 20 73 70 6f 6b 65 6e 2e | 20 20 20 20 7d 0d 20 20 | spoken.| }. |
|000027f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 54 75 | | Tu|
|00002800| 72 6e 4f 6e 4e 75 6d 20 | 3a 20 69 6e 74 65 67 65 |rnOnNum |: intege|
|00002810| 72 3b 20 20 20 20 7b 20 | 43 75 72 72 65 6e 74 20 |r; { |Current |
|00002820| 22 50 6c 65 61 73 65 20 | 74 75 72 6e 20 6f 6e 22 |"Please |turn on"|
|00002830| 20 6d 65 73 73 61 67 65 | 2e 20 20 20 7d 0d 20 20 | message|. }. |
|00002840| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 54 75 | | Tu|
|00002850| 72 6e 4f 6e 4d 61 78 20 | 3a 20 69 6e 74 65 67 65 |rnOnMax |: intege|
|00002860| 72 3b 20 20 20 20 7b 20 | 4d 61 78 20 22 54 75 72 |r; { |Max "Tur|
|00002870| 6e 4f 6e 22 20 6d 65 73 | 73 61 67 65 73 20 61 76 |nOn" mes|sages av|
|00002880| 61 69 6c 61 62 6c 65 2e | 20 20 20 20 7d 0d 20 20 |ailable.| }. |
|00002890| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 54 75 | | Tu|
|000028a0| 72 6e 4f 66 66 4e 75 6d | 20 3a 20 69 6e 74 65 67 |rnOffNum| : integ|
|000028b0| 65 72 3b 20 20 20 7b 20 | 43 75 72 72 65 6e 74 20 |er; { |Current |
|000028c0| 22 50 6c 65 61 73 65 20 | 74 75 72 6e 20 6f 66 66 |"Please |turn off|
|000028d0| 22 20 6d 65 73 73 61 67 | 65 2e 20 20 7d 0d 20 20 |" messag|e. }. |
|000028e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 54 75 | | Tu|
|000028f0| 72 6e 4f 66 66 4d 61 78 | 20 3a 20 69 6e 74 65 67 |rnOffMax| : integ|
|00002900| 65 72 3b 20 20 20 7b 20 | 4d 61 78 20 22 54 75 72 |er; { |Max "Tur|
|00002910| 6e 4f 66 66 22 20 6d 65 | 73 73 61 67 65 73 20 61 |nOff" me|ssages a|
|00002920| 76 61 69 6c 61 62 6c 65 | 2e 20 20 20 7d 0d 20 20 |vailable|. }. |
|00002930| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 4e 6f | | No|
|00002940| 77 48 61 6e 64 6c 65 20 | 3a 20 68 61 6e 64 6c 65 |wHandle |: handle|
|00002950| 3b 20 20 20 20 20 7b 20 | 48 61 6e 64 6c 65 20 74 |; { |Handle t|
|00002960| 6f 20 70 68 6f 6e 65 6d | 65 73 20 74 6f 20 62 65 |o phonem|es to be|
|00002970| 20 73 70 6f 6b 65 6e 2e | 20 20 20 20 7d 0d 20 20 | spoken.| }. |
|00002980| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 53 61 | | Sa|
|00002990| 79 43 6f 64 65 20 3a 20 | 69 6e 74 65 67 65 72 3b |yCode : |integer;|
|000029a0| 20 20 20 20 20 20 7b 20 | 43 6f 64 65 20 66 6f 72 | { |Code for|
|000029b0| 20 69 6e 74 65 72 6e 61 | 6c 20 70 68 72 61 73 65 | interna|l phrase|
|000029c0| 73 2e 20 20 20 20 20 20 | 20 20 20 20 7d 0d 20 20 |s. | }. |
|000029d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 50 61 | | Pa|
|000029e0| 75 73 65 4e 75 6d 20 3a | 20 69 6e 74 65 67 65 72 |useNum :| integer|
|000029f0| 3b 20 20 20 20 20 7b 20 | 43 75 72 72 65 6e 74 20 |; { |Current |
|00002a00| 22 50 61 75 73 65 22 20 | 6d 65 73 73 61 67 65 2e |"Pause" |message.|
|00002a10| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 0d 20 20 | | }. |
|00002a20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 50 61 | | Pa|
|00002a30| 75 73 65 4d 61 78 20 3a | 20 69 6e 74 65 67 65 72 |useMax :| integer|
|00002a40| 3b 20 20 20 20 20 7b 20 | 4d 61 78 20 22 50 61 75 |; { |Max "Pau|
|00002a50| 73 65 22 20 6d 65 73 73 | 61 67 65 73 20 61 76 61 |se" mess|ages ava|
|00002a60| 69 6c 61 62 6c 65 2e 20 | 20 20 20 20 7d 0d 20 20 |ilable. | }. |
|00002a70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 49 6e | | In|
|00002a80| 74 65 72 20 3a 20 69 6e | 74 65 67 65 72 3b 20 20 |ter : in|teger; |
|00002a90| 20 20 20 20 20 20 7b 20 | 51 75 69 63 6b 20 53 74 | { |Quick St|
|00002aa0| 6f 70 20 20 20 20 20 20 | 20 31 3d 4f 4e 2c 20 30 |op | 1=ON, 0|
|00002ab0| 3d 4f 46 46 2e 20 20 20 | 20 20 20 20 7d 0d 20 20 |=OFF. | }. |
|00002ac0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 42 79 | | By|
|00002ad0| 65 4e 75 6d 20 3a 20 69 | 6e 74 65 67 65 72 3b 20 |eNum : i|nteger; |
|00002ae0| 20 20 20 20 20 20 7b 20 | 43 75 72 72 65 6e 74 20 | { |Current |
|00002af0| 22 47 6f 6f 64 62 79 65 | 22 20 6d 65 73 73 61 67 |"Goodbye|" messag|
|00002b00| 65 2e 20 20 20 20 20 20 | 20 20 20 20 7d 0d 20 20 |e. | }. |
|00002b10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 42 79 | | By|
|00002b20| 65 4d 61 78 20 3a 20 69 | 6e 74 65 67 65 72 3b 20 |eMax : i|nteger; |
|00002b30| 20 20 20 20 20 20 7b 20 | 4d 61 78 20 22 47 6f 6f | { |Max "Goo|
|00002b40| 64 42 79 65 22 20 6d 65 | 73 73 61 67 65 73 20 61 |dBye" me|ssages a|
|00002b50| 76 61 69 6c 61 62 6c 65 | 2e 20 20 20 7d 0d 20 20 |vailable|. }. |
|00002b60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 53 77 | | Sw|
|00002b70| 74 63 68 4e 75 6d 20 3a | 20 69 6e 74 65 67 65 72 |tchNum :| integer|
|00002b80| 3b 20 20 20 20 20 7b 20 | 43 75 72 72 65 6e 74 20 |; { |Current |
|00002b90| 22 53 77 69 74 63 68 20 | 64 69 73 6b 73 22 20 6d |"Switch |disks" m|
|00002ba0| 65 73 73 61 67 65 2e 20 | 20 20 20 20 7d 0d 20 20 |essage. | }. |
|00002bb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 53 77 | | Sw|
|00002bc0| 74 63 68 4d 61 78 20 3a | 20 69 6e 74 65 67 65 72 |tchMax :| integer|
|00002bd0| 3b 20 20 20 20 20 7b 20 | 4d 61 78 20 22 73 77 69 |; { |Max "swi|
|00002be0| 74 63 68 22 20 6d 65 73 | 73 61 67 65 73 20 61 76 |tch" mes|sages av|
|00002bf0| 61 69 6c 61 62 6c 65 2e | 20 20 20 20 7d 0d 20 20 |ailable.| }. |
|00002c00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 48 65 | | He|
|00002c10| 6c 6c 6f 4e 75 6d 20 3a | 20 69 6e 74 65 67 65 72 |lloNum :| integer|
|00002c20| 3b 20 20 20 20 20 7b 20 | 43 75 72 72 65 6e 74 20 |; { |Current |
|00002c30| 22 48 65 6c 6c 6f 22 20 | 6d 65 73 73 61 67 65 2e |"Hello" |message.|
|00002c40| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 0d 20 20 | | }. |
|00002c50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 48 65 | | He|
|00002c60| 6c 6c 6f 4d 61 78 20 3a | 20 69 6e 74 65 67 65 72 |lloMax :| integer|
|00002c70| 3b 20 20 20 20 20 7b 20 | 4d 61 78 20 22 48 65 6c |; { |Max "Hel|
|00002c80| 6c 6f 22 20 6d 65 73 73 | 61 67 65 73 20 61 76 61 |lo" mess|ages ava|
|00002c90| 69 6c 61 62 6c 65 2e 20 | 20 20 20 20 7d 0d 20 20 |ilable. | }. |
|00002ca0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 44 6f | | Do|
|00002cb0| 52 65 61 64 65 72 20 3a | 20 50 74 72 3b 20 20 20 |Reader :| Ptr; |
|00002cc0| 20 20 20 20 20 20 7b 20 | 50 74 72 20 74 6f 20 72 | { |Ptr to r|
|00002cd0| 6f 75 74 69 6e 65 20 74 | 6f 20 74 72 61 6e 73 6c |outine t|o transl|
|00002ce0| 61 74 65 20 74 65 78 74 | 2e 20 20 20 7d 0d 20 20 |ate text|. }. |
|00002cf0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 50 68 | | Ph|
|00002d00| 6f 6e 65 6d 65 45 72 72 | 20 3a 20 69 6e 74 65 67 |onemeErr| : integ|
|00002d10| 65 72 3b 20 20 20 7b 20 | 43 68 61 72 61 63 74 65 |er; { |Characte|
|00002d20| 72 20 77 68 65 72 65 20 | 70 68 6f 6e 65 6d 65 20 |r where |phoneme |
|00002d30| 65 72 72 6f 72 20 66 6f | 75 6e 64 2e 7d 0d 20 20 |error fo|und.}. |
|00002d40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 44 6f | | Do|
|00002d50| 4d 6f 6f 73 65 20 3a 20 | 50 74 72 3b 20 20 20 20 |Moose : |Ptr; |
|00002d60| 20 20 20 20 20 20 7b 20 | 50 74 72 20 74 6f 20 72 | { |Ptr to r|
|00002d70| 6f 75 74 69 6e 65 20 74 | 6f 20 77 61 69 74 20 74 |outine t|o wait t|
|00002d80| 6f 20 73 70 65 61 6b 2e | 20 20 20 20 7d 0d 20 20 |o speak.| }. |
|00002d90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 53 70 | | Sp|
|00002da0| 65 65 63 68 45 72 72 20 | 3a 20 69 6e 74 65 67 65 |eechErr |: intege|
|00002db0| 72 3b 20 20 20 20 7b 20 | 4d 61 63 69 6e 54 61 6c |r; { |MacinTal|
|00002dc0| 6b 20 65 72 72 6f 72 20 | 63 6f 64 65 2e 20 20 20 |k error |code. |
|00002dd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 0d 20 20 | | }. |
|00002de0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 4d 6f | | Mo|
|00002df0| 6f 73 46 6c 61 67 73 20 | 3a 20 6c 6f 6e 67 69 6e |osFlags |: longin|
|00002e00| 74 3b 20 20 20 20 7b 20 | 46 6c 61 67 73 20 28 62 |t; { |Flags (b|
|00002e10| 69 74 73 29 20 63 6f 6e | 74 72 6f 6c 6c 69 6e 67 |its) con|trolling|
|00002e20| 20 4d 6f 6f 73 65 2e 20 | 20 20 20 20 7d 0d 20 20 | Moose. | }. |
|00002e30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 42 75 | | Bu|
|00002e40| 72 79 46 6c 61 67 20 3a | 20 69 6e 74 65 67 65 72 |ryFlag :| integer|
|00002e50| 3b 20 20 20 20 20 7b 20 | 46 6c 61 67 20 74 6f 20 |; { |Flag to |
|00002e60| 6e 6f 74 20 62 75 72 79 | 20 66 69 6c 65 73 20 66 |not bury| files f|
|00002e70| 6f 72 20 53 77 69 74 63 | 68 65 72 20 7d 0d 20 20 |or Switc|her }. |
|00002e80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 53 70 | | Sp|
|00002e90| 4f 6e 46 6c 61 67 20 3a | 20 69 6e 74 65 67 65 72 |OnFlag :| integer|
|00002ea0| 3b 20 20 20 20 20 7b 20 | 46 6c 61 67 20 69 66 20 |; { |Flag if |
|00002eb0| 69 6e 74 65 72 6e 61 6c | 20 22 53 70 65 65 63 68 |internal| "Speech|
|00002ec0| 4f 6e 22 20 6e 65 65 64 | 65 64 2e 20 7d 0d 20 20 |On" need|ed. }. |
|00002ed0| 20 20 20 20 20 20 20 20 | 20 45 4e 44 3b 0d 0d 20 | | END;.. |
|00002ee0| 20 20 20 46 55 4e 43 54 | 49 4f 4e 20 20 53 74 61 | FUNCT|ION Sta|
|00002ef0| 72 74 4d 6f 6f 73 65 20 | 28 68 69 64 65 20 3a 20 |rtMoose |(hide : |
|00002f00| 62 6f 6f 6c 65 61 6e 29 | 20 3a 20 69 6e 74 65 67 |boolean)| : integ|
|00002f10| 65 72 3b 0d 20 20 20 20 | 46 55 4e 43 54 49 4f 4e |er;. |FUNCTION|
|00002f20| 20 20 47 65 74 4d 6f 6f | 73 65 20 28 56 41 52 20 | GetMoo|se (VAR |
|00002f30| 6d 20 3a 20 4d 6f 6f 73 | 65 50 74 72 29 3a 20 62 |m : Moos|ePtr): b|
|00002f40| 6f 6f 6c 65 61 6e 3b 0d | 20 20 20 20 46 55 4e 43 |oolean;.| FUNC|
|00002f50| 54 49 4f 4e 20 20 43 61 | 6c 6c 52 65 61 64 65 72 |TION Ca|llReader|
|00002f60| 20 28 73 20 3a 20 53 74 | 72 32 35 35 3b 20 68 20 | (s : St|r255; h |
|00002f70| 3a 20 48 61 6e 64 6c 65 | 29 20 3a 20 69 6e 74 65 |: Handle|) : inte|
|00002f80| 67 65 72 3b 0d 20 20 20 | 20 46 55 4e 43 54 49 4f |ger;. | FUNCTIO|
|00002f90| 4e 20 20 43 61 6c 6c 52 | 65 61 64 65 72 31 28 73 |N CallR|eader1(s|
|00002fa0| 20 3a 20 53 74 72 32 35 | 35 3b 20 68 20 3a 20 48 | : Str25|5; h : H|
|00002fb0| 61 6e 64 6c 65 3b 20 6d | 20 3a 20 4d 6f 6f 73 65 |andle; m| : Moose|
|00002fc0| 50 74 72 29 20 3a 20 69 | 6e 74 65 67 65 72 3b 0d |Ptr) : i|nteger;.|
|00002fd0| 20 20 20 20 50 52 4f 43 | 45 44 55 52 45 20 43 61 | PROC|EDURE Ca|
|00002fe0| 6c 6c 4d 6f 6f 73 65 54 | 6f 53 70 65 61 6b 3b 0d |llMooseT|oSpeak;.|
|00002ff0| 20 20 20 20 50 52 4f 43 | 45 44 55 52 45 20 43 61 | PROC|EDURE Ca|
|00003000| 6c 6c 4d 6f 6f 73 65 31 | 20 28 6d 20 3a 20 4d 6f |llMoose1| (m : Mo|
|00003010| 6f 73 65 50 74 72 29 3b | 0d 0d 0d 49 4d 50 4c 45 |osePtr);|...IMPLE|
|00003020| 4d 45 4e 54 41 54 49 4f | 4e 0d 0d 20 20 20 20 7b |MENTATIO|N.. {|
|00003030| 20 54 68 65 73 65 20 49 | 4e 4c 49 4e 45 20 72 6f | These I|NLINE ro|
|00003040| 75 74 69 6e 65 73 20 6a | 75 6d 70 20 64 69 72 65 |utines j|ump dire|
|00003050| 63 74 6c 79 20 69 6e 74 | 6f 20 4d 6f 6f 73 65 20 |ctly int|o Moose |
|00003060| 63 6f 64 65 2e 2e 2e 20 | 7d 0d 20 20 20 20 50 52 |code... |}. PR|
|00003070| 4f 43 45 44 55 52 45 20 | 4a 75 6d 70 31 20 28 61 |OCEDURE |Jump1 (a|
|00003080| 64 64 72 20 3a 20 50 72 | 6f 63 50 74 72 29 3b 0d |ddr : Pr|ocPtr);.|
|00003090| 20 20 20 20 49 4e 4c 49 | 4e 45 0d 20 20 20 20 20 | INLI|NE. |
|000030a0| 20 20 20 24 32 30 35 46 | 2c 20 20 7b 20 4d 4f 56 | $205F|, { MOV|
|000030b0| 45 2e 4c 20 28 53 50 29 | 2b 2c 41 30 20 7d 0d 20 |E.L (SP)|+,A0 }. |
|000030c0| 20 20 20 20 20 20 20 24 | 34 45 39 30 3b 20 20 7b | $|4E90; {|
|000030d0| 20 4a 53 52 20 20 20 20 | 28 41 30 29 20 20 20 20 | JSR |(A0) |
|000030e0| 20 7d 0d 0d 20 20 20 20 | 46 55 4e 43 54 49 4f 4e | }.. |FUNCTION|
|000030f0| 20 4a 75 6d 70 32 28 68 | 31 3a 68 61 6e 64 6c 65 | Jump2(h|1:handle|
|00003100| 3b 74 3a 50 74 72 3b 69 | 3a 6c 6f 6e 67 69 6e 74 |;t:Ptr;i|:longint|
|00003110| 3b 68 32 3a 68 61 6e 64 | 6c 65 3b 61 64 64 72 3a |;h2:hand|le;addr:|
|00003120| 50 72 6f 63 50 74 72 29 | 3a 49 4e 54 45 47 45 52 |ProcPtr)|:INTEGER|
|00003130| 3b 0d 20 20 20 20 49 4e | 4c 49 4e 45 0d 20 20 20 |;. IN|LINE. |
|00003140| 20 20 20 20 20 24 32 30 | 35 46 2c 20 20 7b 20 4d | $20|5F, { M|
|00003150| 4f 56 45 2e 4c 20 28 53 | 50 29 2b 2c 41 30 20 7d |OVE.L (S|P)+,A0 }|
|00003160| 0d 20 20 20 20 20 20 20 | 20 24 34 45 39 30 3b 20 |. | $4E90; |
|00003170| 20 7b 20 4a 53 52 20 20 | 20 20 28 41 30 29 20 20 | { JSR | (A0) |
|00003180| 20 20 20 7d 0d 0d 0d 0d | 0d 7b 20 54 68 69 73 20 | }....|.{ This |
|00003190| 72 6f 75 74 69 6e 65 20 | 73 65 61 72 63 68 65 73 |routine |searches|
|000031a0| 20 74 68 65 20 56 42 4c | 20 71 75 65 75 65 20 75 | the VBL| queue u|
|000031b0| 6e 74 69 6c 20 69 74 20 | 66 69 6e 64 73 20 61 6e |ntil it |finds an|
|000031c0| 20 65 6e 74 72 79 20 74 | 68 61 74 20 68 61 73 20 | entry t|hat has |
|000031d0| 74 68 65 20 7d 0d 7b 20 | 4d 6f 6f 73 65 27 73 20 |the }.{ |Moose's |
|000031e0| 73 69 67 6e 61 74 75 72 | 65 2c 20 61 6e 64 20 72 |signatur|e, and r|
|000031f0| 65 74 75 72 6e 73 20 61 | 20 70 6f 69 6e 74 65 72 |eturns a| pointer|
|00003200| 20 74 6f 20 74 68 61 74 | 20 65 6e 74 72 79 2e 20 | to that| entry. |
|00003210| 20 54 68 61 74 20 56 42 | 4c 20 65 6e 74 72 79 20 | That VB|L entry |
|00003220| 20 7d 0d 7b 20 63 6f 6e | 74 61 69 6e 73 20 61 6c | }.{ con|tains al|
|00003230| 6c 20 74 68 65 20 69 6d | 70 6f 72 74 61 6e 74 20 |l the im|portant |
|00003240| 4d 6f 6f 73 65 20 67 6c | 6f 62 61 6c 73 2e 20 20 |Moose gl|obals. |
|00003250| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003260| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0d | | }.|
|00003270| 20 20 20 20 46 55 4e 43 | 54 49 4f 4e 20 47 65 74 | FUNC|TION Get|
|00003280| 4d 6f 6f 73 65 3b 0d 20 | 20 20 20 20 20 20 20 56 |Moose;. | V|
|00003290| 41 52 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |AR. | |
|000032a0| 66 6c 61 67 20 3a 20 62 | 6f 6f 6c 65 61 6e 3b 0d |flag : b|oolean;.|
|000032b0| 20 20 20 20 42 45 47 49 | 4e 0d 20 20 20 20 20 20 | BEGI|N. |
|000032c0| 20 20 6d 20 3a 3d 20 70 | 6f 69 6e 74 65 72 28 4f | m := p|ointer(O|
|000032d0| 72 64 34 28 56 62 6c 51 | 75 65 75 65 20 2b 20 32 |rd4(VblQ|ueue + 2|
|000032e0| 29 29 3b 20 7b 20 54 68 | 69 73 20 74 72 69 63 6b |)); { Th|is trick|
|000032f0| 79 20 6c 69 6e 65 20 67 | 65 74 73 20 74 68 65 20 |y line g|ets the |
|00003300| 31 73 74 20 7d 0d 20 20 | 20 20 20 20 20 20 6d 20 |1st }. | m |
|00003310| 3a 3d 20 6d 5e 2e 71 4c | 69 6e 6b 3b 20 20 20 20 |:= m^.qL|ink; |
|00003320| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003330| 7b 20 65 6e 74 72 79 20 | 69 6e 20 74 68 65 20 56 |{ entry |in the V|
|00003340| 42 4c 20 71 75 65 75 65 | 2e 20 20 20 20 20 20 20 |BL queue|. |
|00003350| 7d 0d 0d 20 20 20 20 20 | 20 20 20 66 6c 61 67 20 |}.. | flag |
|00003360| 3a 3d 20 46 41 4c 53 45 | 3b 0d 20 20 20 20 20 20 |:= FALSE|;. |
|00003370| 20 20 57 48 49 4c 45 20 | 28 6d 20 3c 3e 20 4e 49 | WHILE |(m <> NI|
|00003380| 4c 29 20 41 4e 44 20 28 | 66 6c 61 67 20 3d 20 46 |L) AND (|flag = F|
|00003390| 41 4c 53 45 29 20 44 4f | 0d 20 20 20 20 20 20 20 |ALSE) DO|. |
|000033a0| 20 20 20 20 20 42 45 47 | 49 4e 0d 20 20 20 20 20 | BEG|IN. |
|000033b0| 20 20 20 20 20 20 20 20 | 20 20 20 49 46 20 6d 5e | | IF m^|
|000033c0| 2e 53 69 67 20 3d 20 27 | 54 41 4c 4b 27 20 54 48 |.Sig = '|TALK' TH|
|000033d0| 45 4e 20 20 66 6c 61 67 | 20 3a 3d 20 54 52 55 45 |EN flag| := TRUE|
|000033e0| 0d 09 09 09 09 45 4c 53 | 45 20 6d 20 3a 3d 20 6d |.....ELS|E m := m|
|000033f0| 5e 2e 71 4c 69 6e 6b 3b | 0d 20 20 20 20 20 20 20 |^.qLink;|. |
|00003400| 20 20 20 20 20 45 4e 44 | 3b 0d 20 20 20 20 20 20 | END|;. |
|00003410| 20 20 47 65 74 4d 6f 6f | 73 65 20 3a 3d 20 66 6c | GetMoo|se := fl|
|00003420| 61 67 3b 0d 20 20 20 20 | 45 4e 44 3b 0d 0d 0d 0d |ag;. |END;....|
|00003430| 0d 7b 20 54 68 69 73 20 | 72 6f 75 74 69 6e 65 20 |.{ This |routine |
|00003440| 77 69 6c 6c 20 69 6e 73 | 74 61 6c 6c 20 74 68 65 |will ins|tall the|
|00003450| 20 54 61 6c 6b 69 6e 67 | 20 4d 6f 6f 73 65 2e 20 | Talking| Moose. |
|00003460| 20 49 66 20 22 68 69 64 | 65 22 20 69 73 20 54 52 | If "hid|e" is TR|
|00003470| 55 45 2c 20 74 68 65 6e | 20 74 68 65 20 7d 0d 7b |UE, then| the }.{|
|00003480| 20 44 65 73 6b 20 41 63 | 63 65 73 73 6f 72 79 20 | Desk Ac|cessory |
|00003490| 77 69 6e 64 6f 77 20 77 | 69 6c 6c 20 6e 6f 74 20 |window w|ill not |
|000034a0| 62 65 20 6f 70 65 6e 65 | 64 2e 20 20 20 20 20 20 |be opene|d. |
|000034b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000034c0| 20 20 20 20 20 20 20 20 | 20 20 20 7d 0d 7b 20 52 | | }.{ R|
|000034d0| 65 74 75 72 6e 65 64 20 | 76 61 6c 75 65 73 20 61 |eturned |values a|
|000034e0| 72 65 3a 20 30 3d 6f 6b | 2c 20 20 2d 31 3d 41 6c |re: 0=ok|, -1=Al|
|000034f0| 73 6f 20 6f 6b 2c 20 4d | 6f 6f 73 65 20 77 61 73 |so ok, M|oose was|
|00003500| 20 70 72 65 76 69 6f 75 | 73 6c 79 20 69 6e 73 74 | previou|sly inst|
|00003510| 61 6c 6c 65 64 2e 20 20 | 20 7d 0d 7b 20 20 31 3d |alled. | }.{ 1=|
|00003520| 4e 6f 20 4d 61 63 69 6e | 54 61 6c 6b 2c 20 20 32 |No Macin|Talk, 2|
|00003530| 3d 4e 6f 20 4d 6f 6f 73 | 65 20 50 68 72 61 73 65 |=No Moos|e Phrase|
|00003540| 73 2c 20 20 33 3d 4e 6f | 20 53 79 73 20 53 70 61 |s, 3=No| Sys Spa|
|00003550| 63 65 2c 20 20 34 3d 43 | 61 6e 74 20 6f 70 65 6e |ce, 4=C|ant open|
|00003560| 20 44 2e 41 2e 20 20 7d | 0d 20 20 20 46 55 4e 43 | D.A. }|. FUNC|
|00003570| 54 49 4f 4e 20 53 74 61 | 72 74 4d 6f 6f 73 65 3b |TION Sta|rtMoose;|
|00003580| 0d 20 20 20 20 20 20 20 | 20 56 41 52 0d 20 20 20 |. | VAR. |
|00003590| 20 20 20 20 20 20 20 20 | 20 69 20 3a 20 69 6e 74 | | i : int|
|000035a0| 65 67 65 72 3b 20 20 20 | 20 20 20 20 20 20 20 20 |eger; | |
|000035b0| 20 20 20 20 20 7b 20 4f | 70 65 6e 44 65 73 6b 41 | { O|penDeskA|
|000035c0| 63 63 20 72 65 74 75 72 | 6e 20 63 6f 64 65 2c 20 |cc retur|n code, |
|000035d0| 69 67 6e 6f 72 65 64 2e | 20 7d 0d 20 20 20 20 20 |ignored.| }. |
|000035e0| 20 20 20 20 20 20 20 6e | 61 6d 65 20 3a 20 53 74 | n|ame : St|
|000035f0| 72 32 35 35 3b 0d 20 20 | 20 20 20 20 20 20 20 20 |r255;. | |
|00003600| 20 20 6e 65 77 41 70 70 | 6c 53 63 72 61 74 63 68 | newApp|lScratch|
|00003610| 50 74 72 20 3a 20 5e 53 | 69 67 54 79 70 65 3b 0d |Ptr : ^S|igType;.|
|00003620| 20 20 20 20 20 20 20 20 | 20 20 20 20 6f 72 69 67 | | orig|
|00003630| 41 70 70 6c 53 63 72 61 | 74 63 68 20 3a 20 53 69 |ApplScra|tch : Si|
|00003640| 67 54 79 70 65 3b 20 20 | 20 7b 20 53 61 76 65 20 |gType; | { Save |
|00003650| 6f 72 69 67 69 6e 61 6c | 20 41 70 70 6c 53 63 72 |original| ApplScr|
|00003660| 61 74 63 68 20 76 61 6c | 75 65 2e 20 7d 0d 20 20 |atch val|ue. }. |
|00003670| 20 20 20 20 20 20 20 20 | 20 20 63 6f 64 65 41 70 | | codeAp|
|00003680| 70 6c 53 63 72 61 74 63 | 68 20 3a 20 6c 6f 6e 67 |plScratc|h : long|
|00003690| 69 6e 74 3b 20 20 20 7b | 20 52 65 63 6f 76 65 72 |int; {| Recover|
|000036a0| 20 4d 6f 6f 73 65 20 72 | 65 74 75 72 6e 20 63 6f | Moose r|eturn co|
|000036b0| 64 65 73 2e 20 20 20 20 | 20 20 7d 0d 20 20 20 20 |des. | }. |
|000036c0| 20 20 20 20 20 20 20 20 | 41 6d 6f 6f 73 50 74 72 | |AmoosPtr|
|000036d0| 20 3a 20 4d 6f 6f 73 65 | 50 74 72 3b 0d 20 20 20 | : Moose|Ptr;. |
|000036e0| 20 42 45 47 49 4e 0d 20 | 20 20 20 20 20 20 20 53 | BEGIN. | S|
|000036f0| 74 61 72 74 4d 6f 6f 73 | 65 20 3a 3d 20 2d 31 3b |tartMoos|e := -1;|
|00003700| 20 20 20 20 20 20 7b 20 | 44 65 66 61 75 6c 74 20 | { |Default |
|00003710| 72 65 74 75 72 6e 20 63 | 6f 64 65 2e 20 4d 6f 6f |return c|ode. Moo|
|00003720| 73 65 20 61 6c 72 65 61 | 64 79 20 69 6e 73 74 61 |se alrea|dy insta|
|00003730| 6c 6c 65 64 20 7d 0d 20 | 20 20 20 20 20 20 20 6e |lled }. | n|
|00003740| 61 6d 65 20 3a 3d 20 63 | 6f 6e 63 61 74 28 27 20 |ame := c|oncat(' |
|00003750| 27 2c 27 54 61 6c 6b 69 | 6e 67 20 4d 6f 6f 73 65 |','Talki|ng Moose|
|00003760| 27 29 3b 20 20 20 20 20 | 20 20 20 20 20 20 7b 20 |'); | { |
|00003770| 50 75 74 20 61 20 6c 65 | 61 64 69 6e 67 20 4e 55 |Put a le|ading NU|
|00003780| 4c 4c 20 20 20 7d 0d 20 | 20 20 20 20 20 20 20 6e |LL }. | n|
|00003790| 61 6d 65 5b 31 5d 20 3a | 3d 20 63 68 72 28 30 29 |ame[1] :|= chr(0)|
|000037a0| 3b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |; | |
|000037b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7b 20 | | { |
|000037c0| 69 6e 20 66 72 6f 6e 74 | 20 6f 66 20 74 68 65 20 |in front| of the |
|000037d0| 6e 61 6d 65 2e 7d 0d 20 | 20 20 20 20 20 20 20 6e |name.}. | n|
|000037e0| 65 77 41 70 70 6c 53 63 | 72 61 74 63 68 50 74 72 |ewApplSc|ratchPtr|
|000037f0| 20 3a 3d 20 70 6f 69 6e | 74 65 72 28 6f 72 64 34 | := poin|ter(ord4|
|00003800| 28 41 70 70 6c 53 63 72 | 61 74 63 68 29 29 3b 0d |(ApplScr|atch));.|
|00003810| 20 20 20 20 20 20 20 20 | 6f 72 69 67 41 70 70 6c | |origAppl|
|00003820| 53 63 72 61 74 63 68 20 | 3a 3d 20 6e 65 77 41 70 |Scratch |:= newAp|
|00003830| 70 6c 53 63 72 61 74 63 | 68 50 74 72 5e 3b 0d 20 |plScratc|hPtr^;. |
|00003840| 20 20 20 20 20 20 20 6e | 65 77 41 70 70 6c 53 63 | n|ewApplSc|
|00003850| 72 61 74 63 68 50 74 72 | 5e 20 3a 3d 20 27 4e 6f |ratchPtr|^ := 'No|
|00003860| 72 6d 27 3b 0d 0d 20 20 | 20 20 20 20 20 20 49 46 |rm';.. | IF|
|00003870| 20 4e 4f 54 20 47 65 74 | 4d 6f 6f 73 65 28 41 6d | NOT Get|Moose(Am|
|00003880| 6f 6f 73 50 74 72 29 20 | 54 48 45 4e 20 53 74 61 |oosPtr) |THEN Sta|
|00003890| 72 74 4d 6f 6f 73 65 20 | 3a 3d 20 30 3b 0d 0d 20 |rtMoose |:= 0;.. |
|000038a0| 20 20 20 20 20 20 20 49 | 46 20 68 69 64 65 20 3d | I|F hide =|
|000038b0| 20 54 52 55 45 20 54 48 | 45 4e 0d 20 20 20 20 20 | TRUE TH|EN. |
|000038c0| 20 20 20 20 20 20 20 42 | 45 47 49 4e 0d 20 20 20 | B|EGIN. |
|000038d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 6e 65 77 | | new|
|000038e0| 41 70 70 6c 53 63 72 61 | 74 63 68 50 74 72 5e 20 |ApplScra|tchPtr^ |
|000038f0| 3a 3d 20 27 48 69 64 65 | 27 3b 0d 20 20 20 20 20 |:= 'Hide|';. |
|00003900| 20 20 20 20 20 20 20 20 | 20 20 20 43 6c 6f 73 65 | | Close|
|00003910| 44 65 73 6b 41 63 63 28 | 4f 70 65 6e 44 65 73 6b |DeskAcc(|OpenDesk|
|00003920| 41 63 63 28 6e 61 6d 65 | 29 29 3b 0d 20 20 20 20 |Acc(name|));. |
|00003930| 20 20 20 20 20 20 20 20 | 45 4e 44 0d 20 20 20 20 | |END. |
|00003940| 20 20 20 20 45 4c 53 45 | 20 69 20 3a 3d 20 4f 70 | ELSE| i := Op|
|00003950| 65 6e 44 65 73 6b 41 63 | 63 28 6e 61 6d 65 29 3b |enDeskAc|c(name);|
|00003960| 0d 0d 20 20 20 20 20 20 | 20 20 63 6f 64 65 41 70 |.. | codeAp|
|00003970| 70 6c 53 63 72 61 74 63 | 68 20 3a 3d 20 6c 6f 6e |plScratc|h := lon|
|00003980| 67 69 6e 74 28 6f 72 64 | 34 28 41 70 70 6c 53 63 |gint(ord|4(ApplSc|
|00003990| 72 61 74 63 68 29 29 3b | 0d 20 20 20 20 20 20 20 |ratch));|. |
|000039a0| 20 49 46 20 28 28 53 69 | 67 54 79 70 65 28 63 6f | IF ((Si|gType(co|
|000039b0| 64 65 41 70 70 6c 53 63 | 72 61 74 63 68 29 20 3d |deApplSc|ratch) =|
|000039c0| 20 27 4e 6f 72 6d 27 29 | 20 0d 20 20 20 20 20 20 | 'Norm')| . |
|000039d0| 20 20 4f 52 20 28 20 53 | 69 67 54 79 70 65 28 63 | OR ( S|igType(c|
|000039e0| 6f 64 65 41 70 70 6c 53 | 63 72 61 74 63 68 29 20 |odeApplS|cratch) |
|000039f0| 3d 20 27 48 69 64 65 27 | 29 29 20 54 48 45 4e 0d |= 'Hide'|)) THEN.|
|00003a00| 20 20 20 20 20 20 20 20 | 20 20 20 20 53 74 61 72 | | Star|
|00003a10| 74 4d 6f 6f 73 65 20 3a | 3d 20 35 0d 20 20 20 20 |tMoose :|= 5. |
|00003a20| 20 20 20 20 45 4c 53 45 | 20 49 46 20 28 4c 6f 57 | ELSE| IF (LoW|
|00003a30| 6f 72 64 28 63 6f 64 65 | 41 70 70 6c 53 63 72 61 |ord(code|ApplScra|
|00003a40| 74 63 68 29 20 3c 3e 20 | 30 29 20 54 48 45 4e 0d |tch) <> |0) THEN.|
|00003a50| 20 20 20 20 20 20 20 20 | 20 20 20 20 53 74 61 72 | | Star|
|00003a60| 74 4d 6f 6f 73 65 20 3a | 3d 20 48 69 57 6f 72 64 |tMoose :|= HiWord|
|00003a70| 28 63 6f 64 65 41 70 70 | 6c 53 63 72 61 74 63 68 |(codeApp|lScratch|
|00003a80| 29 3b 0d 0d 20 20 20 20 | 20 20 20 20 6e 65 77 41 |);.. | newA|
|00003a90| 70 70 6c 53 63 72 61 74 | 63 68 50 74 72 5e 20 3a |pplScrat|chPtr^ :|
|00003aa0| 3d 20 6f 72 69 67 41 70 | 70 6c 53 63 72 61 74 63 |= origAp|plScratc|
|00003ab0| 68 3b 0d 20 20 20 20 45 | 4e 44 3b 0d 0d 0d 7b 20 |h;. E|ND;...{ |
|00003ac0| 41 72 72 69 76 65 20 77 | 69 74 68 20 73 20 3d 20 |Arrive w|ith s = |
|00003ad0| 53 74 72 32 35 35 20 68 | 6f 6c 64 69 6e 67 20 73 |Str255 h|olding s|
|00003ae0| 74 72 69 6e 67 20 74 6f | 20 63 6f 6e 76 65 72 74 |tring to| convert|
|00003af0| 2e 20 50 75 74 20 69 74 | 20 69 6e 20 68 3d 48 61 |. Put it| in h=Ha|
|00003b00| 6e 64 6c 65 2e 20 20 7d | 0d 20 20 20 20 46 55 4e |ndle. }|. FUN|
|00003b10| 43 54 49 4f 4e 20 43 61 | 6c 6c 52 65 61 64 65 72 |CTION Ca|llReader|
|00003b20| 3b 20 7b 20 52 6f 75 74 | 69 6e 65 20 74 6f 20 63 |; { Rout|ine to c|
|00003b30| 6f 6e 76 65 72 74 20 45 | 6e 67 6c 69 73 68 20 69 |onvert E|nglish i|
|00003b40| 6e 74 6f 20 70 68 6f 6e | 65 6d 65 73 2e 20 7d 0d |nto phon|emes. }.|
|00003b50| 20 20 20 20 20 20 20 20 | 56 41 52 0d 20 20 20 20 | |VAR. |
|00003b60| 20 20 20 20 20 20 20 20 | 20 6d 20 3a 20 4d 6f 6f | | m : Moo|
|00003b70| 73 65 50 74 72 3b 0d 20 | 20 20 20 42 45 47 49 4e |sePtr;. | BEGIN|
|00003b80| 0d 20 20 20 20 20 20 20 | 20 49 46 20 47 65 74 4d |. | IF GetM|
|00003b90| 6f 6f 73 65 28 6d 29 20 | 54 48 45 4e 0d 20 20 20 |oose(m) |THEN. |
|00003ba0| 20 20 20 20 20 20 20 20 | 20 43 61 6c 6c 52 65 61 | | CallRea|
|00003bb0| 64 65 72 20 3a 3d 20 43 | 61 6c 6c 52 65 61 64 65 |der := C|allReade|
|00003bc0| 72 31 28 73 2c 20 68 2c | 20 6d 29 3b 0d 20 20 20 |r1(s, h,| m);. |
|00003bd0| 20 45 4e 44 3b 0d 0d 20 | 20 20 20 46 55 4e 43 54 | END;.. | FUNCT|
|00003be0| 49 4f 4e 20 43 61 6c 6c | 52 65 61 64 65 72 31 3b |ION Call|Reader1;|
|00003bf0| 0d 20 20 20 20 20 20 20 | 20 56 41 52 0d 20 20 20 |. | VAR. |
|00003c00| 20 20 20 20 20 20 20 20 | 20 74 20 3a 20 50 74 72 | | t : Ptr|
|00003c10| 3b 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 69 20 |;. | i |
|00003c20| 3a 20 6c 6f 6e 67 69 6e | 74 3b 0d 20 20 20 20 42 |: longin|t;. B|
|00003c30| 45 47 49 4e 0d 20 20 20 | 20 20 20 20 20 74 20 3a |EGIN. | t :|
|00003c40| 3d 20 70 6f 69 6e 74 65 | 72 28 6f 72 64 34 28 40 |= pointe|r(ord4(@|
|00003c50| 73 29 20 2b 20 31 29 3b | 20 20 7b 20 74 20 3d 20 |s) + 1);| { t = |
|00003c60| 50 6f 69 6e 74 20 70 61 | 73 74 20 74 68 65 20 6c |Point pa|st the l|
|00003c70| 65 6e 67 74 68 20 62 79 | 74 65 2e 20 20 7d 0d 20 |ength by|te. }. |
|00003c80| 20 20 20 20 20 20 20 69 | 20 3a 3d 20 6c 65 6e 67 | i| := leng|
|00003c90| 74 68 28 73 29 3b 20 20 | 20 20 20 20 20 20 20 20 |th(s); | |
|00003ca0| 20 20 20 20 7b 20 69 20 | 3d 20 6c 65 6e 67 74 68 | { i |= length|
|00003cb0| 20 6f 66 20 73 74 72 69 | 6e 67 20 74 6f 20 63 6f | of stri|ng to co|
|00003cc0| 6e 76 65 72 74 2e 20 7d | 0d 20 20 20 20 20 20 20 |nvert. }|. |
|00003cd0| 20 43 61 6c 6c 52 65 61 | 64 65 72 31 20 3a 3d 20 | CallRea|der1 := |
|00003ce0| 4a 75 6d 70 32 28 6d 5e | 2e 54 68 65 53 70 65 65 |Jump2(m^|.TheSpee|
|00003cf0| 63 68 2c 20 74 2c 20 69 | 2c 20 68 2c 20 6d 5e 2e |ch, t, i|, h, m^.|
|00003d00| 44 6f 52 65 61 64 65 72 | 29 3b 0d 20 20 20 20 45 |DoReader|);. E|
|00003d10| 4e 44 3b 0d 0d 0d 0d 7b | 20 52 6f 75 74 69 6e 65 |ND;....{| Routine|
|00003d20| 20 74 6f 20 66 6f 72 63 | 65 20 74 68 65 20 4d 6f | to forc|e the Mo|
|00003d30| 6f 73 65 20 74 6f 20 73 | 70 65 61 6b 20 69 6d 6d |ose to s|peak imm|
|00003d40| 65 64 69 61 74 65 6c 79 | 20 2e 20 7d 0d 20 20 20 |ediately| . }. |
|00003d50| 20 50 52 4f 43 45 44 55 | 52 45 20 43 61 6c 6c 4d | PROCEDU|RE CallM|
|00003d60| 6f 6f 73 65 54 6f 53 70 | 65 61 6b 3b 0d 20 20 20 |ooseToSp|eak;. |
|00003d70| 20 20 20 20 20 56 41 52 | 0d 20 20 20 20 20 20 20 | VAR|. |
|00003d80| 20 20 20 20 20 6d 20 3a | 20 4d 6f 6f 73 65 50 74 | m :| MoosePt|
|00003d90| 72 3b 0d 20 20 20 20 42 | 45 47 49 4e 0d 20 20 20 |r;. B|EGIN. |
|00003da0| 20 20 20 20 20 49 46 20 | 47 65 74 4d 6f 6f 73 65 | IF |GetMoose|
|00003db0| 28 6d 29 20 54 48 45 4e | 20 43 61 6c 6c 4d 6f 6f |(m) THEN| CallMoo|
|00003dc0| 73 65 31 28 6d 29 3b 0d | 20 20 20 20 45 4e 44 3b |se1(m);.| END;|
|00003dd0| 0d 0d 20 20 20 20 50 52 | 4f 43 45 44 55 52 45 20 |.. PR|OCEDURE |
|00003de0| 43 61 6c 6c 4d 6f 6f 73 | 65 31 3b 0d 20 20 20 20 |CallMoos|e1;. |
|00003df0| 42 45 47 49 4e 0d 20 20 | 20 20 20 20 20 20 4a 75 |BEGIN. | Ju|
|00003e00| 6d 70 31 28 6d 5e 2e 44 | 6f 4d 6f 6f 73 65 29 3b |mp1(m^.D|oMoose);|
|00003e10| 0d 20 20 20 20 45 4e 44 | 3b 0d 0d 45 4e 44 2e 00 |. END|;..END..|
|00003e20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e80| 00 00 01 00 00 00 01 4c | 00 00 00 4c 00 00 00 32 |.......L|...L...2|
|00003e90| 65 64 21 00 00 00 00 00 | 00 07 04 26 00 36 05 04 |ed!.....|...&.6..|
|00003ea0| 88 02 5e 30 00 00 00 5a | 00 01 00 00 00 00 00 42 |..^0...Z|.......B|
|00003eb0| 0b 4d 6f 6f 73 65 55 6e | 69 74 2e 70 02 00 00 00 |.MooseUn|it.p....|
|00003ec0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ed0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ef0| 00 00 a0 50 50 88 00 00 | 3d 9f 00 00 01 7e 64 65 |...PP...|=....~de|
|00003f00| 72 2e 00 00 00 50 00 01 | 00 00 00 00 00 32 00 70 |r....P..|.....2.p|
|00003f10| 00 44 00 ba 04 02 4f 4b | 00 00 00 00 00 0e 00 10 |.D....OK|........|
|00003f20| 00 2e 00 ba 88 2f 42 61 | 64 20 63 68 61 72 61 63 |...../Ba|d charac|
|00003f30| 74 65 72 20 69 6e 20 6e | 61 6d 65 2c 20 6f 72 20 |ter in n|ame, or |
|00003f40| 63 61 6e 27 74 20 66 69 | 6e 64 20 74 68 61 74 20 |can't fi|nd that |
|00003f50| 64 69 73 6b 2e 00 00 00 | 00 4a 00 01 00 00 00 00 |disk....|.J......|
|00003f60| 00 34 00 70 00 46 00 ba | 04 02 4f 4b 00 00 00 00 |.4.p.F..|..OK....|
|00003f70| 00 0e 00 0c 00 2e 00 bc | 88 2a 41 20 73 79 73 74 |........|.*A syst|
|00003f80| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 65 20 54 |...H..Mo|naco.e T|
|00003f90| 61 6c 6b 69 6e 67 20 4d | 6f 6f 73 65 2e 20 20 20 |alking M|oose. |
|00003fa0| 20 20 20 20 20 20 00 06 | 00 04 00 33 00 06 01 4d | ..|...3...M|
|00003fb0| 01 fd 00 33 00 06 01 4d | 01 fd 9c 97 2a 2d 00 00 |...3...M|....*-..|
|00003fc0| 12 fd 00 00 12 fd 00 00 | 00 00 01 00 00 00 01 00 |........|........|
|00003fd0| 00 00 01 4c 00 00 00 4c | 00 00 00 32 00 01 15 24 |...L...L|...2...$|
|00003fe0| 02 94 00 00 00 1c 00 32 | 00 00 4d 50 53 52 00 00 |.......2|..MPSR..|
|00003ff0| 00 0a 03 ed ff ff 00 00 | 00 00 00 01 f4 7c 00 00 |........|.....|..|
+--------+-------------------------+-------------------------+--------+--------+